首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Karma-Jasmine模拟/存根$ JQuery调用?

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

Stack Overflow用户
提问于 2020-06-26 17:17:33
回答 1查看 77关注 0票数 0

我使用jQuery在我们的页面上打开一个模式。在组件中,它说:

代码语言:javascript
复制
// @ts-ignore
$('#modal').modal('show');

ts-ignore是bc,我们没有将jQuery导入到组件中(不知道它应该如何工作,但它确实是这样做的)。

此代码片段位于组件的某个方法中。

当UnitTesting这个方法时,我显然想避免使用jQuery来选择Modal,因为没有可用的DOM。

所以我不得不嘲笑它。但是所有的尝试都失败了:

代码语言:javascript
复制
// @ts-ignore
spyOn($.fn, 'modal').and.callFake(() => true);
代码语言:javascript
复制
// @ts-ignore
spyOn($('#modal'), 'modal').and.callFake(() => true);
代码语言:javascript
复制
// @ts-ignore
spyOn($, 'modal').and.callFake(() => true);

都是错误的: modal()方法不存在。

这里我漏掉了什么?

EN

回答 1

Stack Overflow用户

发布于 2020-06-26 21:11:06

我会在Angular https://stackoverflow.com/a/40355691/7365461中像这样使用和导入jQuery

spec.ts文件中,尝试执行以下操作:

代码语言:javascript
复制
import * as $ from 'jquery';
....
spyOn(($.fn as any), 'modal').and.callFake(() => true); 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62591675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档