繁体   English   中英

在angular2中使用ts-mockito来模拟getter

[英]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) } ] }); 

当测试运行时,我将undefinedid

是否可以通过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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM