comment fonctionne le délai d'attente de travail angulaire tests de karma
J'ai de l'amour à l'aide de la console de log pour le feedback peut-être trop, et parfois je tombe sur de code que la convention nous avons ajouté $timeout dans la directive service et/ou le contrôleur, parfois jusqu'à 500 ms, et maintenant, le problème est en cours de test de l'unité, j'ai remarqué que la console.les journaux directement en vertu du constructeur est envoyé au karma et à la sortie à l'écran.
enveloppé journaux de la console en vertu de délai d'attente ou plutôt enveloppé assertions sous $timeout ne produisent pas de résultat que si elles sont ignorées, ce qui est la solution de délais d'attente?
Vous devez vous connecter pour publier un commentaire.
Dans vos tests unitaires, vous chargez
ngMock
, qui remplace l'original$timeout
avec sa maquette. Maquette$timeout
ne fonctionne pas comme la vraie JavaScripttimeout
. Pour l'obtenir pour appeler le code qui est à l'intérieur, vous avez à faire$timeout.flush()
à partir de votre unité de test.Si
$timeout
travaillé comme un vraitimeout
, que vous auriez dû écrire asynchrone unité-tests pour toutes les fonctions qui utilisent$timeout
.Voici un exemple d'une simplification de la fonction qui utilise
$timeout
et comment je l'ai tester:Un test unitaire:
flush()
FTW.