考虑以下代码:
为什么代码覆盖率报告显示测试方法没有完全覆盖?
答案:由于代码总是会抛出异常而从未到达方法结尾,因此关闭右大括号未被覆盖。 如何在单元测试中抛出异常时获得100%的覆盖率? 因此,似乎要获得100%的覆盖率,您需要排除检查异常的测试方法。很烦人。
编辑1:删除了流畅的断言,因为不相关。 编辑2:删除了泛型,因为不相关。
public interface IConverter
{
}
public class ConverterFactory
{
public IConverter GetConverter()
{
throw new ArgumentException();
}
}
[TestClass]
public class ConverterFactoryTests
{
[TestMethod]
[ExpectedException(typeof(ArgumentException))]
public void GetConverterShouldThrowExceptionWhenConverterNotRegistered()
{
var factory = new ConverterFactory();
factory.GetConverter();
}
}
为什么代码覆盖率报告显示测试方法没有完全覆盖?
答案:由于代码总是会抛出异常而从未到达方法结尾,因此关闭右大括号未被覆盖。 如何在单元测试中抛出异常时获得100%的覆盖率? 因此,似乎要获得100%的覆盖率,您需要排除检查异常的测试方法。很烦人。
编辑1:删除了流畅的断言,因为不相关。 编辑2:删除了泛型,因为不相关。