Pourquoi mon moka/chai Erreur de jeter de test défectueux?
J'ai un javascript simple paquet que je suis en train de tester. Je veux vérifier une Erreur est générée, mais lors de mon test, et l'erreur est levée, le test est marqué comme défectueux.
Voici le code:
var should = require('chai').should(),
expect = require('chai').expect();
describe('#myTestSuite', function () {
it ('should check for TypeErrors', function () {
//Pulled straight from the 'throw' section of
//http://chaijs.com/api/bdd/
var err = new ReferenceError('This is a bad function.');
var fn = function () { throw err; }
expect(fn).to.throw(ReferenceError);
})
})
Qui, lorsqu'il est exécuté me donne le résultat suivant:
kh:testthing khrob$ npm test
> testthing@0.1.0 test /Users/khrob/testthing
> mocha
#myTestSuite
1) should check for TypeErrors
0 passing (5ms) 1 failing
1) #myTestSuite should check for TypeErrors:
TypeError: object is not a function
at Context.<anonymous> (/Users/khrob/testthing/test/index.js:10:3)
at callFn (/Users/khrob/testthing/node_modules/mocha/lib/runnable.js:249:21)
at Test.Runnable.run (/Users/khrob/testthing/node_modules/mocha/lib/runnable.js:242:7)
at Runner.runTest (/Users/khrob/testthing/node_modules/mocha/lib/runner.js:373:10)
at /Users/khrob/testthing/node_modules/mocha/lib/runner.js:451:12
at next (/Users/khrob/testthing/node_modules/mocha/lib/runner.js:298:14)
at /Users/khrob/testthing/node_modules/mocha/lib/runner.js:308:7
at next (/Users/khrob/testthing/node_modules/mocha/lib/runner.js:246:23)
at Object._onImmediate (/Users/khrob/testthing/node_modules/mocha/lib/runner.js:275:5)
at processImmediate [as _immediateCallback] (timers.js:336:15)
npm ERR! Test failed. See above for more details.
npm ERR! not ok code 0
Je sais qu'il y a des dizaines de réponses ici sur ce que vous passez à attendre() étant une fonction et non pas le résultat d'une fonction, et j'ai essayé de chaque permutation de anonyme functionizing que je pense, mais j'ai toujours de l'échec du résultat du test.
Je pense qu'il doit y avoir quelque chose à voir avec ma config, étant donné que je suis tout juste en cours d'exécution l'exemple de la documentation, ou de mes attentes pour ce qui est de réussite ou d'échec du test n'est pas correctement calibré.
Toute indices?
var err = new ReferenceError('This is a bad function.');
Semble que votre environnement d'exécution ne reconnaît pas ReferenceError
. Quel navigateur/environnement sont que vous utilisez pour exécuter ce test?Il n'est pas n'importe quel environnement, il est en cours d'exécution. Vous avez trouvé le bug: ReferenceError est pas défini. Faites-en une réponse. C'est à l'OP de comprendre pourquoi il n'est pas défini.
Devrait être à la vanille, le nœud de l'environnement, mais je vais creuser dans le manque de ReferenceError. Merci pour l'aperçu
Pour le fil d'ariane,
console.log(err, typeof err, ReferenceError);
sur la ligne 11 résultats: [ReferenceError: This is a bad function.] 'object' [Function: ReferenceError]
. L'enquête se poursuit...Il est possible que l'environnement ne permet pas d'instancier un ReferenceError parce que c'est une caractéristique intrinsèque de type d'exception.
OriginalL'auteur Khrob | 2014-09-27
Vous devez vous connecter pour publier un commentaire.
Cela devrait résoudre votre problème:
Avis que le
expect
fonction n'est pas appelée.OriginalL'auteur Steven Vachon
Suivi le!
Du haut
n'était pas de me donner quelque chose d'utile. Changer l':
puis l'appel de l'essai, comme
fait exactement ce que j'attendais.
Merci pour l'aide.
OriginalL'auteur Khrob