NCrunch单元测试代码覆盖率

时间:2015-01-14 01:08:29

标签: unit-testing ncrunch

在我的Visual Studio 2013项目中,我从NCrunch获得了未发现的单元测试警告,其中这些函数对其他实体具有很强的依赖性。我想知道是否有任何自然的方式来清除这些警告。

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

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

我有一个假的类;

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]属性来禁用此警告。是正确的方法还是有其他方法可以清除未发现的代码消息?

1 个答案:

答案 0 :(得分:2)

NCrunch支持使用specific inline comments来选择应覆盖的一行或多行代码。您可以使用//ncrunch: no coverage start和/ /ncrunch: no coverage end标记代码块的开头和结尾,或使用//ncrunch: no coverage忽略一行代码。