[英]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.