私はAngular CLI 1.0.0-beta.32.2を使用しています.Angular 2サービスのユニットテストを作成しています。これはコンポーネントを動的に作成し、別のコンポーネントに挿入します。Angular 2 TestModuleMetadataにEntryComponentsプロパティがありません
私のユニットテストでは、サービスをテストするモックコンポーネントを作成しようとしましたが、ng test
の出力は、私のモックコンポーネントがentryComponents
プロパティで指定されているというエラーをスローします。このように、TestBed.createTestingModule({...entryComponents: [ TestDialogComponent ]...})
のように、TestModuleMetadataオブジェクトのentryComponents
プロパティにコンポーネントを追加しようとすると、entryComponents
というプロパティが存在しないことを示す次のエラーが表示されます。 TestModuleMetadata定義を見てみると
Chrome 56.0.2924 (Windows 10 0.0.0) DialogService should create a child component when opening FAILED Error: No component factory found for TestDialogComponent. Did you add it to @NgModule.entryComponents?
entryComponentsプロパティが存在しないことを示しています。ですから、Angular 2とJasmineのユニットテストでコンポーネントを動的に作成するにはどうすればいいですか?
を回避策としては、
entryComponent
で偽のモジュールを作成することができますし、あなたのテストモジュールにそれをインポートして、ありがとうございました!私はTestModuleMetadataの 'entryComponents'プロパティの省略に関する問題を発見しました。[ComponentFactoryResolverはTestBedでコンパイルされたコンポーネントを認識していません](https://github.com/angular/angular/issues/10760) –