[英]How to mock/stub a $ JQuery call with Karma-Jasmine?
我正在使用 jQuery 在我们的页面上打开一个模式。 在组件中它说:
// @ts-ignore
$('#modal').modal('show');
ts-ignore 是因为我们没有将 jQuery 导入到组件中(不知道它应该如何工作,但确实如此)。
该片段位于组件的某个方法中。
在对这种方法进行单元测试时,我显然想避免使用 jQuery 到 select 模态,因为没有任何可用的 DOM。
所以我不得不嘲笑它。 但所有尝试都失败了:
// @ts-ignore
spyOn($.fn, 'modal').and.callFake(() => true);
// @ts-ignore
spyOn($('#modal'), 'modal').and.callFake(() => true);
// @ts-ignore
spyOn($, 'modal').and.callFake(() => true);
都是错误的:modal() 方法不存在。
我在这里想念什么?
我会在 Angular https://stackoverflow.com/a/40355691/7365461中使用和导入 jQuery
在您的spec.ts
文件中,尝试执行以下操作:
import * as $ from 'jquery';
....
spyOn(($.fn as any), 'modal').and.callFake(() => true);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.