c# - 如何达到完整的 CodeCoverage?通过异常释放 block

标签 c# visual-studio unit-testing mstest

我遇到了一个小问题。(在单元测试中)- 我对一个类进行单元测试,其中的方法会引发异常。 结构是:

    public bool DoA()
    {
        ThrowException();
        return true;
    }

    public void DoB()
    {
        ThrowException();
    }

    private static void ThrowException()
    {
        throw new NotSupportedException();
    }

CodeCoverage 的结果不是 100% - DoA() 的返回语句和右大括号以及 Do()B 的右大括号不在 codeCoverage 下(因为它们未达到)。 我知道,这对单元测试来说并不是很重要,因为我仍然检查了功能,但只是为了我 - 它可能以及我如何达到完整的 CodeCoverage? 也许通过排除? (可能更改测试代码/程序代码)

最佳答案

您无法访问代码的 return true 部分,因此可以将其删除。在你的项目中有无法访问的代码是不好的。或者因为函数DoA()没有执行完,可以使用:[ExcludeFromCodeCoverage]

[ExcludeFromCodeCoverage]
public bool DoA()
{
    ThrowException();
    return true;
}

关于c# - 如何达到完整的 CodeCoverage?通过异常释放 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16439299/

相关文章:

c# - 运行 Javascript 来调整 ASP.NET 控件的大小,一旦它被回传呈现或更新

c# - 如何使用 PFX(Bouncy CaSTLe 或其他)以编程方式对可执行文件进行代码签名

c# - 在 C# 中使用 OData 服务不起作用

c# - ASP.NET 在 GridView 中配置更新按钮

c# - 代码分析规则 CA1040 : Avoid empty interfaces, 在非空接口(interface)上报错

C# 使用子类参数覆盖方法

c# - 从非托管代码传递指针

java - 单元测试@Suspended AsyncResponse Controller

unit-testing - 从命令行运行测试时如何强制 mstest 结果覆盖结果文件

Python单元测试导入问题