在同一个NgModule中公开一个组件并模拟

时间:2019-06-17 17:18:33

标签: angular

假设我有一个@NgModule,看起来像这样:

    @NgModule({
      declarations: [
        ...
        MyComponent,
        MyComponentMock
      ],
      imports: [
       ...
      ],
      exports: [
        ...
        MyComponent,
        MyComponentMock
      ],
      ...
    })

其中

    @Component({
      selector: 'my-comp',
      ...
    })
    export class MyComponent { ... }

    @Component({
        selector: 'my-comp-mock',
        ...
    })
    export class MyComponentMock {
    }

在使用此库/模块的Angular SPA中,我显然想

  • 在SPA的父级组件中使用MyComponent
  • 在消耗MyComponentMock的测试中使用MyComponent SPA

我知道我可以在SPA内本地创建MyComponentMock并模拟MyComponent并获得SPA中父组件的测试通过。

有没有一种方法可以在父组件SPA测试中将MyComponent替换为MyComponentMock?我可以选择性地用my-comp替换/更新my-comp-mock还是使用TestBed.overrideComponent

我找不到能做到这一点的好例子,当我这样做时,并不是所有的测试都能通过。

这甚至允许吗?

0 个答案:

没有答案