Я пишу блок-тесты для углового (используя Jasmine Framework и Karma) для запуска тестовых примеров. Мне нужно покрыть код, используя Coverage-html (Стамбул).Каковы факторы покрытия и есть ли Алгоритм расчета покрытия?
Есть другой тип покрытия:
- Функция.
- Отрасли
- отчётность
- Линии
- Игнорируется (с помощью Стамбул можно пренебречь).
Пожалуйста, объясните различный тип покрытия и основные факторы, необходимо позаботиться при написании дел модульного тестирования:
function setCookie(sessionId) {
if(sessionId) {
setCookie('sessionId', sessionId, 21600);
} else {
setCookie('sessionId', session.getId(), 21600);
}
}
я написал тестовые случаи для этого:
describe('setCookie()', function(){
it('should be set a cookie without expiration days', function() {
var defered =$q.defer();
spyOn(sessionCard, 'setCookie').andCallFake(function(){
return defered.promise;
})
sessionCard.setCookie('sessionId', 'sessionId');
expect(document.cookie).toBeDefined();
expect(document.cookie).toBeTruthy();
});
})
отрасль покрытия означает, что вы покрыли все возможные условия. Например, если (x === true) {do this} else {do that} имеет две ветви, где x - true, а где - нет. Если вы напишете тест для этого, где x истинно, тогда у вас будет 50% -ный охват филиалов. –