我有一个AppComponent
,在它的html模板中,我有BannerComponent
和WelcomeComponent
(由<app-banner>
和<app-welcome>
表示)。
因此,在测试用例中,如果我声明了真正的组件,则还必须声明它们的嵌套组件,并提供注入到树中任何组件中的所有服务。
推荐的做法是什么?我可以只使用imports: [ AppModule ]
还是声明所有组件及其嵌套组件以及注入其中的所有服务?
如果我只是导入AppModule,它将使用真实的RouterModule
(如果由AppModule
使用)还是可以仅使用RouterTestingModule
覆盖它?
如果我声明了所有组件,将使我更好地了解被测组件与所有其他从属组件的集成良好。这是一个好习惯吗?另外,使用APP_ERRORS_SCHEMA
是一个好习惯吗?
答案 0 :(得分:0)
我们创建一个TestModule来声明测试组件的所有依赖关系,在那里我们为组件将在其模板中使用的所有选择器声明MockComponents。这些模拟组件大多数都在模板中包含文本,但是如果我们需要它们来呈现DOM对象,则其中一些会做得更多。
有时候,我们只是在spec文件中声明其他组件,如果它们很简单并且没有依赖性。