我尝试用Jasmine测试JavaScript函数。它看起来像这样:
show: function(){
this.work();
var mod = new Module();
mod.doSomething();
}
我正在测试work()
中是否调用了show()
,这没问题。但是mod.doSomething()
发生错误。这使得我的测试失败了,尽管它确实通过了。我该怎么做才能阻止mod.doSomething被调用或至少被执行。对于未使用的函数调用,是否有类似callThrough()
的内容?
我唯一的想法就是编写一个可以从任何地方设置为true或false的全局变量。然后我扩展mod.doSomething()
函数,如果此变量设置为true,则不会被调用。现在我可以简单地将变量设置为true,如果我不希望在测试时执行此函数。但我认为必须有更好的解决方案。有人能帮助我吗?
答案 0 :(得分:1)
这对于“标准”茉莉花实践来说是不可测试的。方法show()
应该将模块作为参数....然后它可以通过doSomething()
上的间谍来测试......