为什么在将RouterEffects添加到应用程序后运行Jest时会出现此错误?
错误输出(部分):没有路由器的提供商!完整输出可在此处获取:gist with error output
这是我开始收到此错误后的最后一次提交:change what break my tests。这是我添加的效果文件:effect file
是的我在那里注入了路由器。但为什么我会收到错误?我在CoreModule中有RouterModule。我测试了DiaryModule中的一个组件。以下是我配置测试模块的方法:
.configureTestingModule({
imports: [
DiaryModule,
StoreModule.forRoot({
...fromRoot.reducers,
diary: combineReducers(fromFeature.reducers),
}),
],
})
为什么我会收到错误?此处必须包含RouterModule:TestingModule - > DiaryModule - > CoreModule - > RouterModule。根据规范(https://angular.io/api/router/Router),Router是RouterModule的一部分。那么为什么我会收到这个错误?即使我导入RouterModule我也有同样的错误:没有路由器的提供商!为什么?我该如何解决这个问题?
我尝试了另一种设置。我尝试了这个模块配置:
.configureTestingModule({
imports: [
MdIconModule,
DiaryComponentsModule,
StoreModule.forRoot({
...fromRoot.reducers,
diary: combineReducers(fromFeature.reducers),
}),
],
declarations: [
MyDairyPageComponent,
CommonShowIfLoggedInComponent,
NotLoggedInComponent,
],
providers: [DialogFactoryService],
})
看看第一个配置比第二个更好。第二个是工作,我没有得到与第一个配置相同的错误。为什么?我有模块,我想测试该模块的组件。我想要的只是导入包含组件的模块。