簡體   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