如何检查 Jasmine 中是否使用特定选择器调用了 jQuery, $?
How to check if jQuery, $ is called with a specific selector in Jasmine?
我的代码:
$('#test1').val('string1');
我可以测试 val 是否被调用 'string1'.
spyOn($.fn, 'val');
expect($.fn.val).toHaveBeenCalledWith('string1');
但我想测试 $ 是否已使用特定选择器调用。我希望能够做到这一点。
expect($.fn).toHaveBeenCalledWith('#test1');
查看jQuery脚本(3.5.1版本),发现处理选择器的函数是$.fn.init
jQuery.fn.init = function( selector, context, root ) {...}
第 3133 行。
所以你的 Jasmine expect
将是:
expect($.fn.init).toHaveBeenCalledWith('#test1', undefined, jasmine.anything());
您可以忽略一些参数。 Reference
我的代码:
$('#test1').val('string1');
我可以测试 val 是否被调用 'string1'.
spyOn($.fn, 'val');
expect($.fn.val).toHaveBeenCalledWith('string1');
但我想测试 $ 是否已使用特定选择器调用。我希望能够做到这一点。
expect($.fn).toHaveBeenCalledWith('#test1');
查看jQuery脚本(3.5.1版本),发现处理选择器的函数是$.fn.init
jQuery.fn.init = function( selector, context, root ) {...}
第 3133 行。
所以你的 Jasmine expect
将是:
expect($.fn.init).toHaveBeenCalledWith('#test1', undefined, jasmine.anything());
您可以忽略一些参数。 Reference