2016-12-03 1 views
0

Учитывая следующий код:Как избежать ненужных блоков-операторов, чтобы увеличить охват филиалов в единичных тестовых случаях?

function test(val){ 
     flag = val;   

     if (!flag) { 
      doThis(); 
     }  
     createSomething(); 
    } 

Таким образом, учитывая охват модульного тестирования, даже функция утверждение охватывается, ветви не покрыты, как-то блок не существует. Таким образом, покрытые отрасли будут составлять 50%, и из-за проблем сонара мы не сможем объединить это для разработки. Поэтому, чтобы избавиться от этого, бесполезного кода, мы пишем как return false; в блоке else и увеличиваем его.

Это эффективный способ написания кода? Есть ли способ избежать написания бесполезных ненужных кодов, чтобы убедиться, что покрытие составляет 100%. Это плохая практика, нужны предложения, чтобы избавиться от этого. У нас есть какие-либо настройки, так что мы можем обновить игнорировать операторы блоков else и увеличить охват, если они не определены.

Sonar силы написать еще блок:

enter image description here

У меня есть 100% покрытие кода, но охват ветвь 50% только из-за игнорирования блока еще. Существуют правила сонара, определяемые, если не более 80%, мы не смогли объединить код :(

+2

Зачем вам нужно добавить блок else для улучшения покрытия? Просто проверьте свою функцию с помощью правдивого val и с фальшивым val, и все будет покрыто. –

+1

Мы не можем видеть ваши тесты, но если у вас есть тот, который проверяет, что 'doThis' вызывается для'! flag', а тот, который проверяет его, не для 'flag', то вы должны увидеть полный охват. – jonrsharpe

ответ

4

Вам не нужен дополнительный код, вы просто должны позвонить по телефону test(true) и test(false), и тест должен показать 100% -ную ветвь покрытие для этой функции

+0

Yup, работал. Спасибо :) – Mithun

+0

@Mithun, пожалуйста, отметьте ответ как принято, спасибо –

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