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 依赖项的主要内容,如果未能解决你的问题,请参考以下文章