Je dois vérifier que les événements sont correctement émis ou diffusés et déclencher les événements manuellement.
Quelle est la meilleure façon de faire cela?
Je dois vérifier que les événements sont correctement émis ou diffusés et déclencher les événements manuellement.
Quelle est la meilleure façon de faire cela?
Si vous avez juste besoin d'un peu de tests sur le cas de la cuisson et de la capture, c'est comment je le fais. Pour s'assurer qu'un certain événement est déclenché ($emit
-ed ou $broadcast
-ndlr), un espion est le chemin à parcourir. Vous avez besoin d'une référence à la portée qui sera l'appel de la $emit
ou $broadcast
, et puis il suffit de faire quelque chose comme ceci:
spyOn(scope, "$emit")
//run code to test
expect(scope.$emit).toHaveBeenCalledWith("MY_EVENT_ID", other, possible, args);
Pour tester la fonctionnalité qui s'exécute lorsqu'un événement est capturé ($on
), c'est un peu plus facile. Juste obtenir un $rootScope
de la inject
fonction et ensuite envoyer l'événement souhaité.
$rootScope.$broadcast("EVENT_TO_TEST", other, possible, args);
//expects for event here
Maintenant, j'imagine que cette la gestion des événements de la suite des évènements dans une directive ou d'un contrôleur (ou les deux) Pour la mise en place de la directive tests, voir https://github.com/vojtajina/ng-directive-testing. Pour la configuration de contrôleur de tests, voir https://github.com/angular/angular-phonecat/blob/master/test/unit/controllersSpec.js#L27
Espérons que cette aide.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.