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 中,如果它被组件使用,它几乎肯定会出现。