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?

Si vous regardez la pile d'appel, votre test semble être en défaut en raison d'une erreur à la ligne 10: 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