痛苦的单元测试安排 In ANGULAR / Jasmine
Painful Unit test arrangement In ANGULAR / Jasmine
在 angular 中为我的单元测试配置测试模块真的很痛苦。
问题是我没有一种简单的方法来查看哪些是我的依赖项,所以我所做的是使用 ng test 启动 karma。然后,我在错误页面中看到缺少的组件、模块或服务。我添加了缺少的依赖项。 运行再次ng测试。等错误。添加缺失的...
这是一些单元测试所需的依赖项示例:
TestBed.configureTestingModule({
declarations: [TestedComponent, X, Y, Z, A, B, C, D, E,F, G, H,I,J, K,L,M,N,O,P,Q,R,S,T,U,V,W, A2],
imports: [HttpClientTestingModule, TranslateModule.forChild(), TooltipModule, CheckboxModule, FormsModule, ReactiveFormsModule, KeyFilterModule,
DropdownModule, MultiSelectModule, CalendarModule, InputMaskModule, BlockUIModule, OverlayPanelModule, ProgressSpinnerModule,
AutoCompleteModule],
providers: [
TranslateStore,
{provide: XProvider, useFactory: () => createXServiceDummy()},
DateTimeFormatPipe,
{provide: YService, useValue: createYServiceServiceDummy()}
]
}).compileComponents();
准备所有需要的依赖项可能需要 1 个小时!!!太疯狂了!
你认为我做错了什么?你如何在你的项目中做到这一点?
如果我需要为我的服务添加间谍,它也会变得更加复杂!!
谢谢!
对于所有子组件,您应该提供存根组件而不是实际组件https://angular.io/guide/testing#stubbing-unneeded-components。这样,您就不必提供那些子组件或进一步的子组件的依赖关系,而只关注当前组件的依赖关系。
此外,对于存根组件,您可以使用这个库 https://www.npmjs.com/package/ng-mocks,它确实缩短了语法。
如果您已经这样做了,并且在一个组件中仍然有这么多子组件,也许您应该将它们组合在一起。
在 angular 中为我的单元测试配置测试模块真的很痛苦。 问题是我没有一种简单的方法来查看哪些是我的依赖项,所以我所做的是使用 ng test 启动 karma。然后,我在错误页面中看到缺少的组件、模块或服务。我添加了缺少的依赖项。 运行再次ng测试。等错误。添加缺失的...
这是一些单元测试所需的依赖项示例:
TestBed.configureTestingModule({
declarations: [TestedComponent, X, Y, Z, A, B, C, D, E,F, G, H,I,J, K,L,M,N,O,P,Q,R,S,T,U,V,W, A2],
imports: [HttpClientTestingModule, TranslateModule.forChild(), TooltipModule, CheckboxModule, FormsModule, ReactiveFormsModule, KeyFilterModule,
DropdownModule, MultiSelectModule, CalendarModule, InputMaskModule, BlockUIModule, OverlayPanelModule, ProgressSpinnerModule,
AutoCompleteModule],
providers: [
TranslateStore,
{provide: XProvider, useFactory: () => createXServiceDummy()},
DateTimeFormatPipe,
{provide: YService, useValue: createYServiceServiceDummy()}
]
}).compileComponents();
准备所有需要的依赖项可能需要 1 个小时!!!太疯狂了!
你认为我做错了什么?你如何在你的项目中做到这一点? 如果我需要为我的服务添加间谍,它也会变得更加复杂!!
谢谢!
对于所有子组件,您应该提供存根组件而不是实际组件https://angular.io/guide/testing#stubbing-unneeded-components。这样,您就不必提供那些子组件或进一步的子组件的依赖关系,而只关注当前组件的依赖关系。
此外,对于存根组件,您可以使用这个库 https://www.npmjs.com/package/ng-mocks,它确实缩短了语法。
如果您已经这样做了,并且在一个组件中仍然有这么多子组件,也许您应该将它们组合在一起。