2017-04-11 3 views
1

In meinem spec ich auf einem mockService wie dieseMultuple Rückgabewerte in einer Spezifikation für einen Spion

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

als im gleichen spec bin Spionage, würde Ich mag

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

aber, es zu tun sagt mir, dass mockService.method bereits ausspioniert wurde. Wie kann ich den vorhandenen Spion einen neuen Wert zurückgeben?

Wenn ich mockService.method.and.returnValue(value2) mache, erhalte ich einen Typfehler. Ich könnte mockService as Spy tun, aber gibt es einen geradlinigeren Weg der Rückkehr in einen neuen Wert für einen Spion?

Antwort

0

Obwohl ich dringend empfehlen würde, Ihre Spezifikationen so zu schreiben, dass Sie die Notwendigkeit für die zwei Mocks in 2 separate it Blöcke trennen, können Sie wahrscheinlich nur mit der Erfassung der Methode Spott auf Ihrem MockService und dann neu zuweisen es vor dem zweiten Mock.

Eg.

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

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