Как сделать следующий охват кода до 100% - PullRequest
3 голосов
/ 23 августа 2011
public void test(int a)

{
    if (a<=3)
      {...}
    else if (3<a && a<=8)
      {...}
    else
      {...}
}

Приведенный выше код набран в версии 2010 и создайте для него UT.Я попытался установить параметр, чтобы быть 2,3,4,8,9.кажется, это уже охватывает весь код.но после запуска UT покрытие кода все равно не будет достигать 100%.Любое предложение будет очень признателен!

Ответы [ 2 ]

2 голосов
/ 23 августа 2011

Невозможно, чтобы тест 3<a оказался ложным (поскольку первый тест уже избавился от него), поэтому переход с 3<a на нижний блок else никогда не выполняется.

1 голос
/ 23 августа 2011

Тот факт, что вы не можете покрыть блок кода тестом, часто является хорошим признаком того, что вы можете упростить свой код, не теряя ни один из путей выполнения.Рассмотрим следующий код, который делает то же самое со 100% покрытием:

    public void test(int a)
    {
        if (a <= 3)
        {
        }
        else if (a <= 8)
        {
        }
        else
        {
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...