Wie teste ich 'normale' (nicht knotenspezifische) JavaScript-Funktionen mit Mocha?

Das scheint sosollte sei extrem einfach; Nach zwei Stunden Lesen und erfolglosem Ausprobieren gebe ich jedoch eine Niederlage zu und frage euch!

Ich versuche es zu benutzenMokka mitShould.js um einige JavaScript-Funktionen zu testen, aber ich stoße auf Scoping-Probleme. Ich habe es auf die grundlegendsten Testfälle vereinfacht, kann es aber nicht zum Laufen bringen.

Ich habe eine Datei mit dem Namenfunctions.js, die nur Folgendes enthält:

<code>function testFunction() {
    return 1;
}
</code>

Und meintests.js (im selben Ordner) Inhalt:

<code>require('./functions.js')

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

Dieser Test schlägt mit a fehlReferenceError: testFunction is not defined.

Ich kann verstehen, warum, weil die meisten Beispiele, die ich gefunden habe, Objekte und Funktionen an den Knoten anhängenglobal Objekt oder exportieren Sie sie mitmodule.exports- Aber wenn ich einen dieser Ansätze verwende, führt mein Funktionscode in einer normalen Browsersituation, in der diese Objekte nicht existieren, zu Fehlern.

Wie kann ich auf eigenständige Funktionen zugreifen, die in einer separaten Skriptdatei von meinen Tests deklariert sind, ohne eine knotenspezifische Syntax zu verwenden?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage