0

コンポーネントのテスト ファイルでコンポーネントのインスタンスを作成しようとしています。しかし、私がこのようなことをすると:

let componentInstance = new component();

コンポーネントコンストラクターにヒットし、さらに本体に何かがあります。

constructor( param ) {
......;
......;
}

現在、コンストラクター本体は他のサービスを使用しているため、このコンポーネントのインスタンスを作成して実行しようとすると、コンストラクター本体で使用されている不明なプロパティについて不平を言います (仕様ファイルが明らかに知らないため)コンポーネントのコンストラクタ本体で何が起こっているかについて。

スペックファイルでそのコンポーネントのインスタンスを作成するにはどうすればよいですか?

4

1 に答える 1

3

を使用して、各テストの前にテスト モジュールを構成する必要がありますTestBed。ここで、テストするコンポーネントと、必要なプロバイダーを宣言できます。次に、も使用してコンポーネントを作成しますTestBed

beforeEach(() => {
  TestBed.configureTestingModule({
    imports: []
    declarations: [ TestComponent ],
    providers: [ TestService ]
  });
});

it('...', () => {
  let fixture = TestBed.createComponnt(TestComponent);
  let component: TestComponent = fixture.componentInstance; 
});

TestServiceにサービスが必要な場合は、それらも追加する必要があります。TestServiceが を必要とする場合Http、テスト中に実際の XHR リクエストがないように、接続をモックする必要があります。例として、以下のリンクを参照してください

関連項目:

于 2016-09-30T01:35:37.013 に答える