Visual studio 2013 VS2013代码覆盖率
我有以下测试:Visual studio 2013 VS2013代码覆盖率,visual-studio-2013,code-coverage,Visual Studio 2013,Code Coverage,我有以下测试: [Test] public void GrantResourceOwnerCredentials_NullClientID_ThrowsArgumentNullException() { Assert.Throws<ArgumentNullException>(() =>{ new ApplicationOAuthProvider(null,null); }); } [测试] public void GrantReso
[Test]
public void GrantResourceOwnerCredentials_NullClientID_ThrowsArgumentNullException()
{
Assert.Throws<ArgumentNullException>(() =>{ new ApplicationOAuthProvider(null,null); });
}
[测试]
public void GrantResourceOwnerCredentials_NullClientID_throwArgumentNullException()
{
抛出(()=>{newapplicationAuthProvider(null,null);});
}
测试通过了,但当我运行代码覆盖率时,它会突出显示
newapplicationAuthProvider(null,null)代码>
作为“覆盖部分接触区域”
我该如何解决这个问题
顺便说一句,我对单元测试/代码覆盖还不熟悉,所以请对我放松
感谢当您看到“部分接触”的结果时,这意味着有多个代码路径可以通过一个方法进行遍历(例如通过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将该方法显示为“完全覆盖”之前,您需要至少编写一个其他测试来测试“奇数”结果