[英]Using ts-mockito in angular2 to mock getter
我有服务
@Injectable() export class MyService { private _id: string; get id(): string { return this._id; } }
还有一个组件测试,我想模拟这个服务:
let myServiceMock = mock<MyService>(MyService); when(myServiceMock.id).thenReturn('mockId'); TestBed.configureTestingModule({ imports: [ MyModule ], providers: [ { provide: MyService, useValue: instance(myServiceMock) } ] });
当测试运行时,我将undefined
为id
。
是否可以通过mockito模拟吸气剂?
看起来它是TestBed.configureTestingModule
工作原理。 它重新定义了作为useValue
提供的所有依赖useValue
解决方案是使用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.