Mon objet de service ressemble à ceci:
expect(appService.serviceTwo.query).toHaveBeenCalled();
4 Réponses :
OK, j'ai eu ce fonctionnement avec ceci:
appService: { serviceOne: jasmine.createSpyObj('serviceOne', ['get']), serviceTwo: jasmine.createSpyObj('serviceTwo', ['query']) }
C'est l'approche optimale. En informatique, les deux 'get' code> et
'requête' code> sont des méthodes d'espionnage. Ainsi, quelque chose comme
attendre (appserver.service.servicetwo.Query) .tohavebeEnCalled () code> est disponible.
Il suffit de remplacer la fonction avec Jasmine Spies: plus tard sur: p>
Et si vous vouliez SPYON CODE> au lieu de le faire - est-ce possible?
J'ai rencontré un problème très similaire et j'ai une solution au travail qui permet d'espionner plusieurs niveaux relativement facilement.
expect(appService.serviceOne).toHaveBeenCalledWith('foobar'); expect(appService.serviceOne().get).toHaveBeenCalledWith('some', 'params');
Les exemples ci-dessus montrent explicitement, nommé Spy Creation. Cependant, on peut simplement continuer à enchaîner dans la fonction pour un objet profondément imbriqué: p> jasmin.spyon code> pour accéder au niveau de la méthode.
Vous devriez accepter une réponse. Il y en a 2 ici ce travail