11
votes

Jasmine espion sur un objet imbriqué

Mon objet de service ressemble à ceci:

expect(appService.serviceTwo.query).toHaveBeenCalled();


1 commentaires

Vous devriez accepter une réponse. Il y en a 2 ici ce travail


4 Réponses :


15
votes

OK, j'ai eu ce fonctionnement avec ceci:

appService: {
  serviceOne: jasmine.createSpyObj('serviceOne', ['get']),
  serviceTwo: jasmine.createSpyObj('serviceTwo', ['query'])
}


1 commentaires

C'est l'approche optimale. En informatique, les deux 'get' et 'requête' sont des méthodes d'espionnage. Ainsi, quelque chose comme attendre (appserver.service.servicetwo.Query) .tohavebeEnCalled () est disponible.



6
votes

Il suffit de remplacer la fonction avec Jasmine Spies: xxx

plus tard sur: xxx


1 commentaires

Et si vous vouliez SPYON au lieu de le faire - est-ce possible?



3
votes

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');


0 commentaires

1
votes

Les exemples ci-dessus montrent explicitement, nommé Spy Creation. Cependant, on peut simplement continuer à enchaîner dans la fonction jasmin.spyon pour accéder au niveau de la méthode.

pour un objet profondément imbriqué: xxx


0 commentaires