gpt4 book ai didi

javascript - Jasmine 测试 : how to spy on special function?

转载 作者:行者123 更新时间:2023-11-28 21:04:46 25 4
gpt4 key购买 nike

我是测试、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

我必须做什么才能监视该方法?我已经尝试在运行该函数之前加载 backbone.js 文件,但这并没有改变任何东西。

最佳答案

你可以写

spyOn( Backbone.history, 'navigate' );

然后

expect( Backbone.history.navigate ).toHaveBeenCalled();

一个可能的缺点是,如果你曾经并行执行测试并且 Backbone.history.navigate 被一个测试监视并被另一个测试使用,你可能不会得到预期的结果.

关于javascript - Jasmine 测试 : how to spy on special function?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29742898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com