首页 文章

在抛出异常代码后,关闭大括号时缺少代码覆盖率

提问于
浏览
1

在Visual Studio 2017中,抛出异常的语句之后的右大括号被认为是未覆盖的 .

在我的情况下,我有一个测试检查是否抛出NullReferenceException:

[Fact]
public void PassingNullConsoleWriter_ThrowsArgumentNullException()
{
    Assert.Throws<ArgumentNullException>(() => new UsagePrinter(null));
}

以这种形式的代码分析代码覆盖率将lambda的整个身体标记为未覆盖,显然不是真的:

Code Coverage marks body of lambda uncovered

将lambda扩展为语句lambda揭示了实际上它是抛出被认为是未被覆盖的异常的语句后的右大括号:

Code Coverage marks the closing brace uncovered

请注意,两种情况下文件的整体覆盖范围都是相同的 .

我能做些什么吗?

1 回答

  • 1

    那这个呢?

    [Fact]
    public void PassingNullConsoleWriter_ThrowsArgumentNullException()
    {
        var exception = Record.Exception(() => new UsagePrinter(null));
        Assert.IsType<ArgumentNullException>(exception);
    }
    

相关问题