gpt4 book ai didi

jquery - 我可以使用 Jasmine 来监视 jQuery.$ 吗?

转载 作者:行者123 更新时间:2023-12-01 08:07:03 25 4
gpt4 key购买 nike

我想知道是否可以使用 Jasmine 监视 jQuery 中的 $ 函数。

这是我要测试的代码。

var Wrapper = Wrapper || {};
Wrapper.Controls = {};
/**
* Use an anonymous function to initialize all JavaScript
*/

(function($) {
Wrapper.Controls.Utils = function() {
var external = {
showHide : function(namespace, controlNameStem){
var stem = namespace + controlNameStem;
$(stem + 'Controller').click();
}
};
return external;
};
return Wrapper.Controls.Utils;
}(Wrapper.jQuery));

Wrapper.jQuery 位于一个单独的文件中,该文件由 Jasmine 在加载 Wrapper 之前预加载。它包含一个 jQuery stub ,其定义如下

var aliasjQuery = {};

var Wrapper = Wrapper || {};
Wrapper.jQuery = aliasjQuery;

这意味着当Wrapper初始化时,aliasjQuery是作为Wrapper.jQuery传入匿名函数的对象

我的 Jasmine 测试规范如下所示:

describe("form control utils", function(){

var controlUtils = Wrapper.Controls.Utils();
var namespace = 'pluto_namespace';
var controlName = 'dualNationality';


it("showHide fires click event on controlNameController", function(){
var control = { click : function(){}};
spyOn(aliasjQuery, '$').andReturn(control);
spyOn(control, 'click');
controlUtils.showHide(namespace, controlName);
expect(control.click).toHaveBeenCalled();
});



});

我欢迎任何评论,即使是那些类似“你到底为什么要这样做?”的评论。以及替代解决方案,因为我认为我已经花了太长时间盯着这个问题。

最佳答案

您已经尝试过 spyOn(window, "$") 了吗?

关于jquery - 我可以使用 Jasmine 来监视 jQuery.$ 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15883430/

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