如何用业茉莉模拟/存根 $ JQuery 调用?



我正在使用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); 

最新更新