【发布时间】:2019-10-17 10:49:21
【问题描述】:
我有一个服务在它的依赖项之前被引导,因此我使用Injector 在它准备好时实现我的依赖项。
constructor(private readonly injector: Injector) {
const interval = setInterval(() => {
const myService = injector.get(MyService);
if (myService) {
this.myService = myService;
clearInterval(interval);
}
}, 200);
}
在我的测试中我有
beforeEach(() => {
return TestBed.configureTestingModule({
providers: [
{
provide: MyClass,
useClass: MyClass,
deps: [
Injector,
]
},
{
provide: MyService,
useValue: myServiceMock
},
]
});
});
问题是TestBed.get(MyService) !== TestBed.get(MyClass).myService。
由于某种原因,它变成了相同的两个不同实例。
如何使 成为一个实例?
【问题讨论】:
-
是
TestBed.get(MyClass).myService未定义? -
不,它是 MyService 的一个实例
标签: angular unit-testing dependency-injection