[英]Using ts-mockito in angular2 to mock getter
I have a service 我有服务
@Injectable() export class MyService { private _id: string; get id(): string { return this._id; } }
And a test for a component, where I want to mock this service: 还有一个组件测试,我想模拟这个服务:
let myServiceMock = mock<MyService>(MyService); when(myServiceMock.id).thenReturn('mockId'); TestBed.configureTestingModule({ imports: [ MyModule ], providers: [ { provide: MyService, useValue: instance(myServiceMock) } ] });
And when test is running, i get undefined
as an id
. 当测试运行时,我将undefined
为id
。
Is it possible to mock getters via mockito? 是否可以通过mockito模拟吸气剂?
Looks like it is how TestBed.configureTestingModule
works. 看起来它是TestBed.configureTestingModule
工作原理。 It redefines all dependencies which are provided as useValue
它重新定义了作为useValue
提供的所有依赖useValue
The solution is using useFactory
: 解决方案是使用useFactory
:
let myServiceMock = mock<myServiceMock>(MyService); when(myServiceMock.id).thenReturn('mockId'); TestBed.configureTestingModule({ imports: [ MyModule ], providers: [ { provide: MyService, useFactory: () => instance(myServiceMock) } ] });
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.