Wie Teste ich die 'normalen' (nicht-Knoten-spezifischen) JavaScript-Funktionen mit Mokka?

Dieser scheint, wie es sollte sehr einfach, aber nach zwei Stunden Lesen und trial-and-error ohne Erfolg, ich bin die Niederlage einzugestehen und bitten Euch!

Ich versuche, Mokka mit Should.js zum testen einige JavaScript-Funktionen, aber ich bin mit in die scoping-Fragen. Ich habe vereinfacht es, bis auf die grundlegendste test-Fällen, aber ich kann es nicht arbeiten.

Habe ich eine Datei namens functions.js, die enthält die folgenden:

function testFunction() {
    return 1;
}

Und meine tests.js (befindet sich im selben Ordner) Inhalt:

require('./functions.js')

describe('tests', function(){
    describe('testFunction', function(){
        it('should return 1', function(){
            testFunction().should.equal(1);
        })
    })
})

Dieser test fehlschlägt, mit einem ReferenceError: testFunction is not defined.

Ich kann sehen, warum, weil die meisten der Beispiele, die ich gefunden habe entweder befestigen Sie Objekte und Funktionen zu den Knoten global Objekt oder exportieren, um Sie mit module.exports—aber mit jeder dieser Ansätze bedeutet, dass meine Funktion code werfen würde Fehler in einem standard-browser situation, wo diese Objekte nicht existieren.

So, wie kann ich auf standalone-Funktionen, die deklariert werden in eine separate Skript-Datei aus meinen tests, ohne die Verwendung von Knoten-spezifische syntax?

  • Haben Sie exports.testFunction = testFunction in Ihrem functions.js ?
  • Nein, der vollständige Inhalt functions.js angezeigt werden. Bitte die Frage nochmal Lesen—ich ausdrücklich sagen, dass ich nicht verwenden wollen-Knoten-spezifische syntax in der Quell-Datei.
InformationsquelleAutor Mark Bell | 2012-04-18
Schreibe einen Kommentar