我是Testing,Jasmine和Javascript的新手,也许这个问题很简单。我必须用Jasmine测试一个功能:
define(["module", ...], function(Module, ...){
//...
action: function(){
//...
Backbone.history.navigate('companies', {trigger: true});
//...
}
}
测试如下所示:
describe("function action", function() {
it ("calls Backbone.history.navigate()", function(){
spyOn(module, "Backbone.history.navigate");
module.action();
expect(Backbone.history.navigate()).toHaveBeenCalled();
});
});
但这是行不通的。它说:
Error: Backbone.history.navigate() method does not exist
我必须做什么才能监视该方法?
在运行该函数之前,我已经尝试加载了ribs.js文件,但这并没有改变任何东西。
最佳答案
你可以写
spyOn( Backbone.history, 'navigate' );
接着
expect( Backbone.history.navigate ).toHaveBeenCalled();
可能的不利之处是,如果您曾经并行执行测试,并且
Backbone.history.navigate
被一个测试监视并且被另一个测试使用,则您可能没有预期的结果。关于javascript - Jasmine 测试:如何监视特殊功能?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29742898/