ng2-translate:无法在TranslatePipe.transform中读取未定义的属性"subscribe"

Ria*_*ias 5 unit-testing testbed ng2-translate ngx-translate angular

我在Angular 5项目中使用ng2-translate,我正在尝试为一个组件创建单元测试.我总是导入TranslateModule.forRoot( *...* )我的测试,测试将在我的视图中使用翻译管道.

但是在两种情况下,在单元测试期间会抛出上述错误:我认为其他工作测试没有任何差别.

×应该创建(44ms)TypeError:无法在Object上的TranslatePipe.transform(webpack:///./node_modules/ng2-translate/src/translate.pipe.js?:74:75)读取未定义的属性'subscribe'. eval [as updateRenderer](ng:///DynamicTestModule/MyComponent.ngfactory.js:127:70)at Object.debugUpdateRenderer [as updateRenderer](webpack:///./node_modules/@angular/core/esm5/core. js?:14951:21)checkAndUpdateView(webpack:///./node_modules/@angular/core/esm5/core.js?:14065:14)

这可能发生的原因是什么?我不使用TranslateService,但我在模板中使用管道.有没有人遇到同样的问题?

小智 14

我有同样的问题,我添加到TranslateService模拟类:

public onLangChange: EventEmitter<any> = new EventEmitter(); public onTranslationChange: EventEmitter<any> = new EventEmitter(); public onDefaultLangChange: EventEmitter<any> = new EventEmitter();

  • @CularBytes 和其他人:以防有人再次绊倒这个问题,我创建了一个示例:https://gist.github.com/alexanderfink/082d25aa4e0700d654e8612eb58d17b2 (3认同)
  • 仍然适用于 Angular 9.0.7 和 ngx-translate 11.0.1 (2认同)