Angular 7:如何在 Jasmine 单元测试中解决 Hammer.js 依赖项
Posted
技术标签:
【中文标题】Angular 7:如何在 Jasmine 单元测试中解决 Hammer.js 依赖项【英文标题】:Angular 7: How to resolve Hammer.js dependency in Jasmine unit test 【发布时间】:2020-11-03 06:31:24 【问题描述】:在为使用 Material Slider 并依赖 HammerJS 的组件编写单元测试时,我看到此错误 WARN LOG: 'The "slide" event cannot be bound because Hammer.JS is not loaded and no custom loader has been specified.'
我已经导入并添加了依赖的提供者:
import BrowserModule, HAMMER_GESTURE_CONFIG from '@angular/platform-browser';
但我在每次测试中仍然得到相同的错误。如何解决这种依赖关系?
【问题讨论】:
【参考方案1】:好的,结果证明这是一个明显的解决方法。只是留下这个,以防它对其他人有用,因为在这个错误字符串上的谷歌搜索出现零结果。
只需确保在单元测试中导入依赖项本身即可。在这种情况下,这是hammerjs
,而不是您在应用模块中配置的提供程序,以便在您的角度材质组件中使用它。
所以,在您的 spec
测试文件中:
import 'hammerjs';
就是这样。这假定它已安装在您的应用程序中并出现在您的package.json
中,如果它被组件使用,它几乎肯定会这样做。
【讨论】:
以上是关于Angular 7:如何在 Jasmine 单元测试中解决 Hammer.js 依赖项的主要内容,如果未能解决你的问题,请参考以下文章
在 Angular 中使用 Jasmine 使用 *ngIf 指令时,如何对元素是不是可见进行单元测试
如何使用 Jasmine 为私有方法编写 Angular / TypeScript 单元测试
使用 Jasmine 进行 Angular 单元测试:如何删除或修改 spyOn
如何在不使用 Angular 的 spyOn 的情况下检查服务中的方法是不是在 Jasmine 单元测试中被调用?
如何使用 Angular 4 Jasmine 单元测试用例覆盖 IF/ELSE 条件
使用 jasmine / karma 进行 Angular 4 单元测试和 http post mocking - 如何修复