首页 > 解决方案 > 如何检查是否使用 Jasmine 中的特定选择器调用了 jQuery、$?

问题描述

我的代码:

$('#test1').val('string1');

我可以测试是否使用'string1'调用了val

spyOn($.fn, 'val');

expect($.fn.val).toHaveBeenCalledWith('string1');

但我想测试是否使用特定的选择器调用了 $。我希望能够做到这一点。

expect($.fn).toHaveBeenCalledWith('#test1');

标签: javascriptjqueryunit-testingjasmine

解决方案


查看 jQuery 脚本(版本 3.5.1),我发现处理选择器的函数是$.fn.init

 jQuery.fn.init = function( selector, context, root ) {...}

那是在第 3133 行。

所以你的茉莉花expect将是:

expect($.fn.init).toHaveBeenCalledWith('#test1', undefined, jasmine.anything());

你可以忽略一些论点。参考


推荐阅读