2015-02-11 174 views
0

我有以下測試:VS2013代碼覆蓋

[Test] 
public void GrantResourceOwnerCredentials_NullClientID_ThrowsArgumentNullException() 
    { 
     Assert.Throws<ArgumentNullException>(() =>{ new ApplicationOAuthProvider(null,null); }); 

    } 

測試通過,但是當我運行代碼覆蓋率,它突出

new ApplicationOAuthProvider(null,null);

爲 「覆蓋部分觸摸的區域」。

我該如何解決?

順便說一句,我是單元測試/代碼覆蓋新手,所以對我來說很容易。

由於

回答

0

當看到的「部分接觸」的結果,這意味着什麼是,有可以通過一個方法被遍歷(例如通過if塊,空校驗等多代碼路徑),並且只有一個路徑被你的測試執行。

例如,如果您有以下方法:

public string IsThisEvenOrOdd(int number) 
{ 
    return (number % 2 == 0) ? "Even" : "Odd"; 
} 

而且你寫下面的單元測試:

public string IsThisEvenOrOdd_PositiveEvenNumber_ReturnsEven() 
{ 
    var number = 2; 
    var expected = "Even"; 

    var actual = IsThisEvenOrOdd(number); 

    Assert.AreEqual(expected, actual); 
} 

如果運行測試,它應該會成功。但是,它只測試一條路徑 - 「均勻」路徑。在該方法顯示爲MSTest「完全覆蓋」之前,您至少需要編寫一個其他測試來測試「奇數」結果。