2013-03-17 55 views
0

我想獲得單元測試的基礎知識,並且所有教程都使用了大量示例。此外,我寫了下面的代碼和測試,並想知道這是否是正確的:這是一個正確的單元測試嗎?

class Foo 
{ 
    public bool TwoDecisions(int X, int Y) 
    { 
    if(X>Y) 
     return true; 
    else return false; 
    } 
} 

TEST 
public class FooTests 
    { 
    [Test] 
    public void TwoDecisions_TRUE() 
    { 
     Foo f=new Foo(); 
     bool expected = true; 
     bool actual = FooTests.TwoDecision(10,9) 
     Assert.AreEqual(expected, actual); 
    } 
    } 
+1

當你嘗試時會發生什麼?此外,你的方法可以寫成'return X> Y;' – 2013-03-17 18:49:53

+0

其實我現在不能嘗試(現在不在家),所以我正在學習和準備。 – user970696 2013-03-17 18:53:27

回答

1

這是一個單位測試,所以這種方式是正確的。但這是這個班級唯一需要的測試嗎?沒有。您只測試您的if語句的分支返回true。你也應該測試一下爲了完全「覆蓋」你的代碼的情況。

+0

我明白了,我應該有另一種測試方法返回false和可能兩個:一個用於「=」,另一個用於「<」。 – user970696 2013-03-17 18:54:04

+0

@TerryS正確 - 您應該嘗試運用班級中的所有代碼。這意味着編寫單元測試來測試通過代碼的所有路徑。 – ColinE 2013-03-17 18:58:25

+0

並且不要忘記x == y – Jocke 2013-03-18 08:01:33

相關問題