我有一点问题。(在单元测试中) - 我对一个方法引发异常的类进行单元测试。 结构是:
public bool DoA()
{
ThrowException();
return true;
}
public void DoB()
{
ThrowException();
}
private static void ThrowException()
{
throw new NotSupportedException();
}
CodeCoverage的结果不是100% - 来自DoA()的return语句和结束花括号以及来自Do()B的结束花括号不在codeCoverage下(因为它们未到达)。 我知道,这对于unittest并不重要,因为我仍然检查了功能,但仅仅是为了我 - 它可能以及我如何达到完整的CodeCoverage? 也许通过排除? (可能更改测试代码/程序代码)
答案 0 :(得分:6)
您无法访问代码的返回true部分,因此您可以将其删除。在项目中有无法访问的代码是很糟糕的。或者因为函数DoA()未完成,您可以使用:[ExcludeFromCodeCoverage]
[ExcludeFromCodeCoverage]
public bool DoA()
{
ThrowException();
return true;
}
答案 1 :(得分:5)
这里无法全面报道。
throw
之后的所有内容都是死代码。
此外,代码(行)覆盖范围不是测试中的圣杯。是的,这很重要,但它不是最终的标准。