Articles

Affichage des articles du décembre, 2016

Hell with Angular: tests unitaires, ng-click et ng-disabled

Je vous donne cette petite astuce, car je viens de voir qu'il existe un bug connu dans Angular au niveau des tests unitaires. Parfois, pour tester des directives, nous simulons un click sur des élements où "ng-click" a été déclaré. Or parfois, nous utilisons de manière combinée un "ng-disabled" pour pouvoir cliquer ou non sur l'élément. Quand l'application tourne, pas de soucis. Dans les tests, en revanche, nous pouvons cliquer à n'importe quel moment ! Des ruses sur stackoverflow nous incite à déclarer dans le ng-click la condition mise dans le ng-disabled afin que la fonction du ng-click ne s'exécute que si la condition est remplise. C'est un peu ballot de faire du code redondant pour un bug côté test. Du coup, voici un petit bout de code que vous pouvez utiliser dans vos tests (à charger après la déclaration de votre module applicatif dans Karma), et qui permet de résoudre ça: angular . module ( ' myApp ' ) ...