茉莉花测试:如何调用被测函数中调用的函数?
Jasmine test: how to call through function that is called in tested function?
我尝试用 Jasmine 测试一个 JavaScript 函数。它看起来像这样:
show: function(){
this.work();
var mod = new Module();
mod.doSomething();
}
我现在正在测试是否在show()
中调用了work()
,这是没有问题的。但是 mod.doSomething()
中出现错误。这使我的测试失败,尽管它实际上通过了。我能做些什么来防止 mod.doSomething 被调用或至少被执行。对于未使用的函数调用是否有类似 callThrough()
的东西?
我唯一的想法是编写一个可以从任何地方设置为 true 或 false 的全局变量。然后我扩展 mod.doSomething()
函数,以便在该变量设置为真时不被调用。如果我不想在测试时执行此函数,现在我可以简单地将变量设置为 true。但我认为必须有更好的解决方案。有人可以帮助我吗?
这无法通过 "standard" 茉莉花实践进行测试。方法 show()
应该将一个模块作为参数....然后可以用 doSomething()
...
上的间谍进行测试
我尝试用 Jasmine 测试一个 JavaScript 函数。它看起来像这样:
show: function(){
this.work();
var mod = new Module();
mod.doSomething();
}
我现在正在测试是否在show()
中调用了work()
,这是没有问题的。但是 mod.doSomething()
中出现错误。这使我的测试失败,尽管它实际上通过了。我能做些什么来防止 mod.doSomething 被调用或至少被执行。对于未使用的函数调用是否有类似 callThrough()
的东西?
我唯一的想法是编写一个可以从任何地方设置为 true 或 false 的全局变量。然后我扩展 mod.doSomething()
函数,以便在该变量设置为真时不被调用。如果我不想在测试时执行此函数,现在我可以简单地将变量设置为 true。但我认为必须有更好的解决方案。有人可以帮助我吗?
这无法通过 "standard" 茉莉花实践进行测试。方法 show()
应该将一个模块作为参数....然后可以用 doSomething()
...