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++ - 为什么基类枚举不被继承?

c# - ASPX 站点无法检测由 JavaScript 填写的表单字段

c# - LINQ 2 SQL 查询不适用于函数调用

C# - 发送电子邮件 - STOREDRV.Submission.Exception :OutboundSpamException

android - 如何测试自定义sdk android单元测试的元素

java - 抽象类中的模拟时钟抛出 NullPointerException

unit-testing - 使用 Karma/Mocha/Sinon/Chai 进行单元测试 window.location.assign

c# - 重用组 LINQ 函数

visual-studio - VS 中的 TypeScript "Go to implementation"

visual-studio - 我可以在 Visual Studio Express 2012 for Windows Desktop 中使用 F# 吗?