我想用Karma和Jasmine测试一个Angular服务。公共功能的测试按预期工作。但是,虽然测试并未涵盖服务的所有行,但由于未达到私有函数中的某些行。原因是私有函数依赖于私有状态/变量。
角度服务:
// depends on something locally
var switch = false;
// private
function help() {
if (switch) {
return 0;
} else {
return 1;
}
}
// public
this.func = function() {
// ...
help();
// ...
}
使用此示例仅涵盖了帮助功能的错误路径。 有没有办法测试服务的所有路径,而不公开私有函数或创建setter?