我正在使用jQuery在我们的页面上打开一个模态。在组件中它说:
// @ts-ignore
$('#modal').modal('show');
ts-ignore 是 bc,我们不会将 jQuery 导入到组件中(不知道它应该如何工作,但它确实如此(。
此代码段位于组件的某个方法中。
当对此方法进行单元测试时,我显然希望避免使用jQuery来选择模态,因为没有任何可用的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 中使用和导入 jQuery https://stackoverflow.com/a/40355691/7365461
在spec.ts
文件中,尝试执行以下操作:
import * as $ from 'jquery';
....
spyOn(($.fn as any), 'modal').and.callFake(() => true);