如何测试我所有的服务已注入组件
class TestComponent {
constructor(testService: TestService) {}
}
如果有人从组件构造函数中删除该服务,则我的测试用例应该失败。
答案 0 :(得分:2)
我们可以将TestBed
设置为虚拟的Angular模块,并可以像配置一组提供程序那样对其进行配置,
TestBed.configureTestingModule({
providers: [TestService]
});
然后使用其内部注入器和TestBed
将令牌解析为依赖项,
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/