Angular7:Jasmine单元测试中如何解决Hammer.js依赖
Angular 7: How to resolve Hammer.js dependency in Jasmine unit test
在为使用 Material 滑块并依赖于 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';
但我在每次测试中仍然遇到相同的错误。我该如何解决这种依赖关系?
好的,事实证明这是一个明显的修复。只是留下它以防它对其他人有用,因为对该错误字符串的 google 搜索结果为零。
只需确保在单元测试中导入依赖项本身。在这种情况下,那是 hammerjs
而不是您在应用程序模块中配置以在 angular material 组件中使用它的提供程序。
因此,在您的 spec
测试文件中:
import 'hammerjs';
就是这样。这假定它已安装在您的应用程序中并出现在您的 package.json
中,如果它被组件使用,它几乎肯定会出现。
在为使用 Material 滑块并依赖于 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';
但我在每次测试中仍然遇到相同的错误。我该如何解决这种依赖关系?
好的,事实证明这是一个明显的修复。只是留下它以防它对其他人有用,因为对该错误字符串的 google 搜索结果为零。
只需确保在单元测试中导入依赖项本身。在这种情况下,那是 hammerjs
而不是您在应用程序模块中配置以在 angular material 组件中使用它的提供程序。
因此,在您的 spec
测试文件中:
import 'hammerjs';
就是这样。这假定它已安装在您的应用程序中并出现在您的 package.json
中,如果它被组件使用,它几乎肯定会出现。