unit-testing - NCrunch 单元测试代码覆盖率

标签 unit-testing ncrunch

在我的 Visual Studio 2013 项目中,我收到来自 NCrunch 的未覆盖单元测试警告,其中这些函数对其他实体有很强的依赖性。我想了解是否有任何自然的方法可以清除这些警告。

假设我有一个像这样的人员类;

public class PersonApiHandler{    
public virtual Person GetPersonFromFacebook(){
// heavy facebook api call here
return person;    }
}

我有一个像这样的假类(class);

public class PersonApiHandlerFake: PersonApiHandler
{
public override Person GetPersonFromFacebook(){
// fake person is returning - isolated
return fakeUser;
}
}

然后我像这样调用这个方法;

    [TestFixture]
        public class PersonApiHandlerTests(){
    [Test]
    public void GetPerson_from_Api_success(){
    PersonApiHandlerFake fake = new PersonApiHandlerFake();
var fakeFacebookUser = fake.GetPersonFromFacebook();
Assert.IsNotNull(fakeFacebookUser );
    }

在这种情况下,NCrunch 提示 PersonApiHandler.GetPersonFromFacebook 未覆盖代码。由于此函数调用真实的 API,因此我无法在单元测试中使用它。我发现使用 [ExcludeFromCodeCoverage] 属性禁用此警告的唯一方法。这是正确的方法还是有其他方法可以清除未覆盖的代码消息?

最佳答案

NCrunch 支持使用 specific inline comments选择应从覆盖范围中忽略的一行或多行代码。可以使用//ncrunch: nocoveragestart和//ncrunch:nocoverageend来标记代码块的开始和结束,或者使用//ncrunch:没有覆盖忽略一行代码。

关于unit-testing - NCrunch 单元测试代码覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27934297/

相关文章:

javascript - 主干测试 - 在 "change"元素上触发 'select' 事件

c# - 并行运行测试时为 WebApi OWIN 自主机获取免费端口

path - 让 NCRUNCH 遵守项目设置中的输出路径?

unit-testing - 有没有一种简单的方法可以在测试期间全局清除 time.Now() ?

java - 单元测试期间 POJO 对象上的 NullPointer

java - JUnit 的@Ignore

ui-automation - 如何在远程机器上使用 FlaUI 运行 UI 测试而不是 RDP 进入它?

.net - 使用 NCrunch 运行测试时如何查看控制台输出?

unit-testing - 使用 Resharper 从单元测试项目中记录 NHibernate 信息