2015-01-14 3 views
2

В моих проектах Visual Studio 2013 я получаю предупреждение об обнаружении единичного теста от NCrunch, где эти функции имеют сильную зависимость от других объектов. Я хотел бы узнать, есть ли какой-либо естественный способ устранить эти предупреждения.Кодирование кода тестирования ядра 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], чтобы отключить это предупреждение. Правильно ли это сделать или есть ли другой способ очистить открытые кодовые сообщения?

ответ

2

NCrunch поддерживает использование specific inline comments, чтобы выбрать одну или несколько строк кода, которые она должна игнорировать из зоны покрытия. Вы можете использовать //ncrunch: no coverage start и//ncrunch: no coverage end, чтобы отметить начало и конец кодового блока, или используйте //ncrunch: no coverage, чтобы игнорировать одну строку кода.