我正在为Angular编写单元测试用例(使用Jasmine Framework和Karma)来运行测试用例。我需要使用Coverage-html(Istanbul)来覆盖代码。
有不同类型的报道:
请解释在编写单元测试用例时需要注意的不同类型的覆盖范围和必要因素:
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();
});
})
答案 0 :(得分:0)
在编写单元测试时,您提到的覆盖类型的要点是必要的,但仍然无法保证您已经覆盖了代码。
每个函数都有多种方案可以编写测试。
如果涵盖上述方案,您可以安全地假设您的功能已经过全面测试。 只要确保你的测试取决于输出而不是特定的变量。