Comment puis-je déclencher un keyup/événement keydown dans un angularjs test unitaire?
Je veux unité de test d'une directive qui émule un espace réservé, où la valeur d'entrée est désactivée uniquement sur keyup/les événements.
Vous devez vous connecter pour publier un commentaire.
Vous devez créer un événement en programmant et déclencher. Pour ce faire, y compris jQuery pour les tests unitaires est tout à fait utile. Par exemple, vous pourriez écrire un utilitaire simple comme ceci:
et ensuite l'utiliser dans votre unité de test comme suit:
Vous pouvez le voir, cette technique dans le http://angular-ui.github.io/bootstrap/ projet ici: https://github.com/angular-ui/bootstrap/blob/master/src/typeahead/test/typeahead.spec.js
Avertissement: soyons précis ici: je ne préconise pas l'utilisation de jQuery avec AngularJS! Je dis juste qu'il est utile de manipulation du DOM utilitaire pour écrire des tests en interaction avec le DOM.
Pour rendre le code ci-dessus travail sans jQuery, changement:
à:
J'ai eu des problèmes avec l'utilisation de accepté de répondre. J'ai trouvé d'autres soultion.
De travail exemple peut être trouvé ici
bind
J'ai eu quelque chose de ce genre de travail.
si vous utilisez angular2, vous pouvez déclencher un événement en appelant
dispatchEvent(new Event('mousedown'))
surHTMLElement
instance. par exemple: Testé angulaire 2.rc1Récemment, j'ai voulu tester cette HostListener sur un composant (Angulaire 2):
Et après avoir cherché pendant un certain temps, ce travail est: