angular - karma 不断要求更多与测试组件无关的进口

标签 angular karma-jasmine

我正在测试我的 DashboardComponent,这是我的 beforeEach block :

  beforeEach(() => {
    TestBed.configureTestingModule({
      imports: [
        FormsModule,
        routing
      ],
      declarations: [
        DashboardComponent,
        Ellipsis,
        FavouritesComponent,
        FormatDuration,
        LoginComponent,
        SearchComponent
      ],
    });
    this.fixture = TestBed.createComponent(DashboardComponent);
  });

它已经有一些与仪表板无关的导入(比如 LoginComponent)。但它一直要求更多的进口:

Error: Component **** is not part of any NgModule or the module has not been imported into your module.

app.module.ts 中的所有内容都存在,所以这不是问题。

是什么导致了这种行为,我该如何解决?

最佳答案

AppModuleRouterTestingModule 添加到您传递给 TestBed.configureTestingModule() 的对象的 imports 中。

不确定在导入 RouterTestingModule 时是否还需要添加 {provide: APP_BASE_HREF, useValue: '/'}

另请参阅此 PR 以获取即将发布的测试文档 https://github.com/angular/angular.io/pull/2198/files

关于angular - karma 不断要求更多与测试组件无关的进口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39447670/

相关文章:

angular - 如何为对象创建行为主题并在另一个组件上订阅它?

html - 如何将动态索引从 ngFor 添加到 html 属性值

angular - 将参数转换为内部类

angular - 进行 Angular 单元测试时出错

angularjs - 解决服务 Jasmine 测试中的嵌套 promise

jquery - 在 jasmine 测试中使用 React 组件触发 jQuery 事件,无需开玩笑

Angular2 Jasmine 模拟服务未使用,但实际服务被调用

javascript - Angular 2单元测试抛出错误 'subscribe'不是未定义的成员

javascript - 如何在带有 Electron 和 NodeJs 8 的 Angular 7 中通过 Jest 迁移或使用现有的 karma Jasmine

angular - 将我的 Angular 6 指令与 DOM 解耦