Warum ist mein mocha/chai Fehler werfen-test Versagen?

Ich habe ein einfaches javascript-Paket habe ich versucht zu testen. Ich möchte prüfen, ob ein Fehler geworfen wird, aber wenn mein test wird ausgeführt, und der Fehler geworfen wird, der test markiert ist, als zu scheitern.

Hier der 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);

    })

})

Die, wenn Sie laufen gibt mir folgende Ausgabe:

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

Ich weiß, es gibt Dutzende von Antworten, die hier über das, was Sie weitergeben zu erwarten() ist eine Funktion, nicht das Ergebnis einer Funktion, und ich habe versucht, jede permutation von anonymen functionizing ich denken kann, aber ich bekomme immer den fehlgeschlagenen test Ergebnis.

Ich denke, es muss etwas zu tun mit meiner config, da ich im Grunde nur mit dem Beispiel aus der Dokumentation, oder meine Erwartung für das, was ist eine pass-oder fail-test auf dem ist nicht korrekt kalibriert.

Irgendwelche Hinweise?

Wenn Sie die Aufrufliste betrachten, Ihre test-scheint zu scheitern, weil ein Fehler in Zeile 10: var err = new ReferenceError('This is a bad function.'); Scheint, wie Ihre runtime-Umgebung nicht erkennen ReferenceError. Welchen browser/Umwelt verwenden Sie, um diesen test ausführen?
Es spielt keine Rolle, in welchem Umfeld er läuft in. Sie haben den Fehler gefunden: ReferenceError ist nicht definiert. Machen Sie es eine Antwort. Es ist bis zu der OP, um herauszufinden, warum es nicht definiert.
Sollte eine Vanille-Knoten-Umgebung, aber ich werde Graben in der Mangel an ReferenceError. Vielen Dank für die Einsicht
Für den breadcrumb trail, console.log(err, typeof err, ReferenceError); auf der Linie 11 ergibt sich: [ReferenceError: This is a bad function.] 'object' [Function: ReferenceError]. Ermittlungen dauern an...
Es ist möglich, dass die Umgebung nicht Sie programmgesteuert instanziiert eine ReferenceError, weil es ein innerer exception-Typ.

InformationsquelleAutor Khrob | 2014-09-27

Schreibe einen Kommentar