0

为什么在将 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],
})

看看第一个配置比第二个更好。第二个正在工作,我没有得到与第一个配置相同的错误。为什么?我有模块,我想测试该模块中的组件。我想要的只是导入包含组件的模块。

4

0 回答 0