繁体   English   中英

如何使用 Karma-Jasmine 模拟/存根 $ JQuery 调用?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM