为什么在将 RouterEffects 添加到应用程序后运行 Jest 时出现此错误?
错误输出(部分):没有路由器提供程序!。此处提供完整输出:gist with error output
这是我开始收到此错误之后的最后一次提交:更改什么破坏我的测试。这是我添加的效果文件:效果文件
是的,我在那里注入路由器。但是为什么我会出错?我在 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),路由器是 RouterModule 的一部分。那么为什么我会收到这个错误?即使我导入 RouterModule 我也有同样的错误:没有路由器的提供者!。为什么?我该如何解决这个问题?
我尝试了另一种设置。我试过这个模块配置:
.configureTestingModule({
imports: [
MdIconModule,
DiaryComponentsModule,
StoreModule.forRoot({
...fromRoot.reducers,
diary: combineReducers(fromFeature.reducers),
}),
],
declarations: [
MyDairyPageComponent,
CommonShowIfLoggedInComponent,
NotLoggedInComponent,
],
providers: [DialogFactoryService],
})
看看第一个配置比第二个更好。第二个正在工作,我没有得到与第一个配置相同的错误。为什么?我有模块,我想测试该模块中的组件。我想要的只是导入包含组件的模块。