javascript - 如何检查是否使用 Jasmine 中的特定选择器调用了 jQuery、$?

标签 javascript jquery unit-testing jasmine

我的代码:

$('#test1').val('string1');
我可以测试 已通过 调用'字符串1' .
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

关于javascript - 如何检查是否使用 Jasmine 中的特定选择器调用了 jQuery、$?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65849906/

相关文章:

javascript - 使您的网站与 IE 兼容 - 从哪里开始?

javascript - 在 Javascript 中多次刷新后保持计时器一致

javascript - 使用 javascript/jquery 对 JSON 数据进行分组/排序

javascript - 将变量从 WordPress PHP 传递到 JavaScript

javascript - 弹出页面中的自动对焦(甚至对焦)?

swift - 如何使用 RxSwift 和 XCTest 测试进入 Swift 主线程的函数?

unit-testing - 甚至可以对 RenderMvcController 进行单元测试?

javascript - Promise.all 与 Promise 链中的 x => Promise.all(x) 有什么区别?

javascript - 将数据库中的图像附加到 jQuery 中的 div 中

Java, Spring : Testing DAOs for DataAccessException with Mockito