2017-04-11 77 views
1

在我的天賦,我在mockService刺探這樣在一個規範的間諜Multuple返回值

spyOn(mockService, 'method').and.returnValue(
     value1 
); 

比同規格的,我想這樣做

spyOn(mockService, 'method').and.returnValue(
     value2 
); 

但告訴我mockService.method已經被窺探。 如何讓現有的間諜返回一個新值?

如果我這樣做mockService.method.and.returnValue(value2)我收到一個類型錯誤。我可以做mockService as Spy,但有沒有更直接的方式爲間諜帶來新的價值?

回答

0

雖然我強烈建議您嘗試編寫您的規格,以便將兩次模擬的需求分成兩個獨立的it塊,但您可能只需捕獲mockService上模擬的方法,然後重新分配即可它在做第二次模擬之前。

例如,

let originalMethod = mockService.method; 
spyOn(mockService, 'method').and.... 

// later, 
mockService.method = originalMethod; 
spyOn(mockService, 'method).and ...... 
相關問題