javascript - 如何检查是否使用 Jasmine 中的特定选择器调用了 jQuery、$?
问题描述
我的代码:
$('#test1').val('string1');
我可以测试是否使用'string1'调用了val。
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 行。
所以你的茉莉花expect
将是:
expect($.fn.init).toHaveBeenCalledWith('#test1', undefined, jasmine.anything());
你可以忽略一些论点。参考
推荐阅读
- r - R闪亮的Handsontable:使用handsontable中的数据框
- reactjs - 如何配置 webpack 以设置文件版本?
- python - 如何从内存中完全删除列表项
- html - 删除使用 d3 创建的表中的列空间
- java - Android 房间数据库
- tabs - 如何在 Dash 中创建选项卡和子选项卡?
- eigen - SparseMatrix kroneckerProduct 崩溃
- java - 如何在 java 中的 FileWriter 中跳转一个字符?
- python - 计算列的不同值及其在下一列中的并行值映射
- laravel - Laravel Mix npm 运行开发报错