2015-02-11 3 views
0

У меня есть следующий тест:VS2013 Покрытие кода

[Test] 
public void GrantResourceOwnerCredentials_NullClientID_ThrowsArgumentNullException() 
    { 
     Assert.Throws<ArgumentNullException>(() =>{ new ApplicationOAuthProvider(null,null); }); 

    } 

Испытание прошло, но когда я запускаю покрытие кода, он выделяет

new ApplicationOAuthProvider(null,null);

как «Покрытие частично прикасается».

Как это исправить?

Кстати, я новичок в модульном тестировании/покрытии кода, так что легко на меня.

Благодаря

ответ

0

Когда вы видите результат «Частично прикоснулся», что это означает, что существует несколько путей коды, которые могут быть пройдены через метод (например, через if блок, нулевой чек, и т.д. .), и только ваши тесты были выполнены только по одному пути.

Например, если вы имели следующий метод:

public string IsThisEvenOrOdd(int number) 
{ 
    return (number % 2 == 0) ? "Even" : "Odd"; 
} 

И вы пишете следующий тест блок:

public string IsThisEvenOrOdd_PositiveEvenNumber_ReturnsEven() 
{ 
    var number = 2; 
    var expected = "Even"; 

    var actual = IsThisEvenOrOdd(number); 

    Assert.AreEqual(expected, actual); 
} 

Если запустить этот тест, он должен добиться успеха. Однако он проверяет только один путь - путь «Четный». Вам нужно будет написать хотя бы еще один тест, чтобы проверить результат «Нечетный», прежде чем этот метод будет отображаться как «полностью покрытый» MSTest.

Смежные вопросы