我正在尝试测试是否已调用Jquery addClass fnuction:
var data = "<form>Login Methods:<ul><li>SMS</li><li>Voice</li></ul></form>";
function injectOption() {
console.log('in injectOption');
data = $(data).addClass('some-class')[0].outerHTML;
console.log('data is now');
console.log(data);
}
describe("Our data array", function() {
beforeEach(function () {
});
it('jquery.addClass called', function () {
injectOption();
spyOn($.fn, 'addClass');
expect($.fn.addClass).toHaveBeenCalled();
});
});
查看jsFiddle here。但不知何故,它总是失败,即使我可以在控制台日志中看到该类已添加...
答案 0 :(得分:0)
您的代码存在几个问题。主要问题是你必须在调用injectOption()
之前初始化间谍。
it('jquery.addClass called', function () {
spyOn($.fn, 'addClass');
injectOption();
expect($.fn.addClass).toHaveBeenCalled();
});
工作Fiddle。