茉莉花测试:如何调用被测函数中调用的函数?

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()...

上的间谍进行测试