如何测试我的所有服务都注入(inject)到组件中
class TestComponent {
constructor(testService: TestService) {}
}
如果有人从组件构造函数中删除服务,我的测试用例就会失败。
最佳答案
我们可以将 TestBed
制作为虚拟 Angular 模块,并且可以将其配置为包含一组提供程序的模块,
TestBed.configureTestingModule({
providers: [TestService]
});
然后使用其内部注入(inject)器和TestBed
将 token 解析为依赖项,
testBedService = TestBed.get(TestService);
那么你的测试用例就像,
it('Service injected via inject(...) and TestBed.get(...) should be the same instance',
inject([TestService], (injectService: TestService) => {
expect(injectService).toBe(testBedService);
})
);
引用https://codecraft.tv/courses/angular/unit-testing/dependency-injection/
关于angular - 如何测试我的所有服务都注入(inject)到组件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56712529/