【发布时间】:2018-03-18 05:35:02
【问题描述】:
这是我正在尝试测试的修改后的较短版本。
var Service = (function() {
function doStuff(command, package) {
var response = ""
switch(command) {
case "A":
response = a(package);
break;
case "B":
response = b(package);
break;
case "C":
response = c(package);
break;
default:
// should never get here
response = "NOPE!";
}
return response;
}
function a(package) {
// do stuff
}
function b(package) {
// do stuff
}
function c(package) {
// do stuff;
}
return {
doStuff: doStuff,
a: a,
b: b,
c: c
}
});
module.exports = Service;
所以基本上,我正在尝试编写一个单元测试来测试 doStuff 方法,但是当它遇到每种情况时,我只想对 a、b 或 c 之类的方法执行类似的操作,而不是检查取出返回值,因为这些函数 a、b 和 c 中的每一个都返回 true 或 false。因此,我想确定正确的案例是他的,而不是仅仅测试真假。
我无法按照当前的编码方式找到一种方法。我的这个类的测试文件正在创建一个新的实例,我尝试监视这些方法,但这不起作用,因为在这段代码中的实际实例上没有调用它们,它们是在本地调用的。间谍可以做到这一点吗?如果不是,那么以这种方式进行测试的推荐方法是什么?
【问题讨论】:
标签: javascript unit-testing testing jasmine