mi sono imbattuto in un problema molto simile e ottenuto una soluzione di lavoro che consente di spionaggio a più livelli in modo relativamente facile .
appService = {
serviceOne: jasmine.createSpy().and.returnValue({
get: jasmine.createSpy()
},
serviceTwo: jasmine.createSpy().and.returnValue({
query: jasmine.createSpy()
}
}
Questa soluzione consente il codice seguente per essere messa in un test di unità
expect(appService.serviceOne).toHaveBeenCalledWith('foobar');
expect(appService.serviceOne().get).toHaveBeenCalledWith('some', 'params');
Nota: questo codice non è stato testato; tuttavia, ho un'implementazione molto simile in una delle mie app. Spero che questo ti aiuti!
Devi accettare una risposta. Ci sono 2 qui che funzionano – jolySoft