Comment faire en sorte que les tests de placeholder vides échouent intentionnellement à Mocha?
Je suis en train d'écrire une API de NodeJS et de tests à l'aide de Moka, de Chai et SuperTest. Je suis une utilisation typique d'un test-driven approche de l'écriture, les premiers tests satisfaire à ces tests avec le code de travail. Cependant, en raison du nombre de tests pour toutes les permutations différentes, j'ai commencé à écrire vide de l'espace réservé tests alors que j'ai tous les it('should...')
descriptions en place pour me rappeler ce que pour tester, quand j'arrive à cette fonctionnalité. Par exemple:
it 'should not retrieve documents without an authorized user', (done) ->
done()
Le problème, c'est que done()
est appelé sans affirmation de sorte que le test est considéré comme en passant, j'ai donc ajouté de l'affirmation suivante.
false.should.equal true # force failure
mais c'est un hack et la raison de l'échec qui Moka affiche peut sembler déroutant, surtout quand d'autres tests peuvent être défaillants.
Est-il de toute manière officielle, intentionnellement, l'échec de l'espace réservé des tests de ce genre dans Mocha?
source d'informationauteur Soviut
Vous devez vous connecter pour publier un commentaire.
La voie officielle pour marquer des essais comme n'étant pas prêt pour les essais pour
skip
qui est une méthode qui apparaît comme un champ dedescribe
etit
. Voici un exemple:Le code ci-dessus, lorsqu'il est mis dans un
test.js
fichier et de l'exécuter avec$ mocha --reporter=spec test.js
produit:Le test, les noms sont précédés par
-
sont ignorés. Aussi, dans un terminal qui prend en charge les couleurs les tests qui sont ignorés apparaissent en bleu (par opposition au rouge en cas d'échec des tests et vert pour le passage). Un sauté de test est dit être "en attente" afin de Moka indique le nombre de sauté tests "2 en attente".De 05/19/2018 c'est officiel: https://mochajs.org/#pending-tests
Un test non implémenté ne devrait pas
fail
il doit être marqué commepending
.Un succincte de la méthode de marquage moka test
not yet implemented
est de ne pas passer à une fonction de rappel à lait
gestionnaire.De course
mocha test
permettra d'afficher votre lettre morte tests en attente.Si vous passez une chaîne ou d'une erreur à
done()
il indique une erreur. Donc:serait la cause de la tester à l'échec avec la sortie:
J'aime @Canyon de la solution de juste ne passant pas par un rappel pour marquer les tests "en attente", mais dans mon cas, je veux que ces espaces réservés à l'échec de mon CI s'appuie, afin de les rendre réels à défaut des tests de ce genre a été plus facile.
C'est effectivement une bonne question, parce que je voudrais aussi trouver ce super utile. Après l'avoir regardé, je pense que de simplement créer votre propre wrapper "todo" ou "échec" de la fonction que vous pouvez réutiliser tout au long de votre base de code.
Exemples ci-dessous utilisent une fonction appelée todo, qui permet d'imprimer le texte "n'est pas encore mis en œuvre". Cela peut être utile en tant que module séparé, même de sorte que vous pouvez les importer et les utiliser avec tous vos tests. Pourriez avoir besoin de modifier un peu le code...
Exemple dans le chai affirmer
Exemple à l'aide de chai affirmer , avec l'échec de l'option (bien qu'il semble unncessary)