2017-05-22 5 views
0

Gerade begann mit Mokka als Testing-Suite, und nach ein paar Jahren der Nicht-Verwendung auf Javascript zurückkommen, so dass dies eine dumme Frage sein kann oder nicht eine offensichtliche Antwort. Einfach Sachen testen und sehen, was funktioniert.Mocha liefert "keine Funktionsantwort" beim Testen

Ich habe eine kleine Datei von Berechnungsfunktionen in einer Datei mit dem Namen index.js, das ist die Datei Mocha ist zum Abspringen gesetzt.

function add(numA, numB) { 
    return parseFloat(numA) + parseFloat(numB); 
} 

function subtract(numA, numB) { 
    return parseFloat(numA) - parseFloat(numB); 
} 

function divide(numA, numB) { 
    return parseFloat(numA)/parseFloat(numB); 
} 

function multiply(numA, numB) { 
    return parseFloat(numA) * parseFloat(numB); 
} 

function modulo(numA, numB) { 
    return parseFloat(numA) % parseFloat(numB); 
} 

Es wurde versucht, es so einfach wie möglich zu halten, während einige Sorten und Testräume erlaubt wurden. Wie auch immer, ich habe dann versucht, eine Reihe von Testfällen dafür zu schreiben, auch einfach nur Mokka-Testfälle, kein spezielles Assert-Modul oder so etwas, rein einfacher Mokka und Javascript.

describe("index", function() { 
    var assert = require("assert"); 
    var x = 12; 
    var y = 34; 
    var index = require('../app/index'); 

    beforeEach(function() { 
     x++;   
     y--; 
     console.log(" x = " + x + "; y = " + y); 
    }); 
    describe("index", function() { 
     describe("Addition", function() { 
      it("should add numbers", function() { 
       assert.equal(x + y, index.add(x, y)); 
      }); 
     }); 
     describe("Subtraction", function() { 
      it("should subtract numbers", function() { 
       assert.equal(x - y, index.subtract(x, y)); 
      }); 
     }); 
     describe("Division", function() { 
      it("should divide numbers", function() { 
       assert.equal(x/y, index.divide(x, y)); 
      }); 
     }); 
     describe("Multiplication", function() { 
      it("should multiply numbers", function() { 
       assert.equal(x * y, index.multiply(x, y)); 
      }); 
     }); 
     describe("Modulus", function() { 
      it("should modulo numbers", function() { 
       assert.equal(x % y, index.modulo(x, y)); 
      }); 
     }); 
    }); 
}); 

Grundsätzlich schrieb nur diese, um zu sehen, ob ich Mokka in dem Weg zur Arbeit bekommen konnte ich dachte, es sollte funktionieren, weil die Beispiele, die ich alles einen Sinn sah. Wenn ich jedoch diesen Code ausgeführt habe, funktionierte es nicht, mit dem Grund, dass jede Funktion, die ich versuchte, mit index failed, index.add, indexsubtract usw. aufzurufen, insbesondere wegen TypeError: index. [Function_name] ist keine Funktion.

Von dem, was ich im Code anderer Leute gelesen und gesehen habe, sollte dies funktionieren. Meine Ordner sind so eingerichtet, dass die zu testende Datei in \ lscmocha \ app liegt und die Testdatei, in der diese Tests enthalten sind, sich in \ lscmocha \ test befindet. Jede Hilfe würde geschätzt werden, sorry, wenn es eine offensichtliche Antwort oder eine doppelte Frage ist, ich habe eine Weile gesucht und konnte nichts finden.

+0

Exportiert die Datei index.js all diese Funktionen? –

+0

Ich habe den Abschnitt übersprungen, in dem es mir gesagt wurde, dass ich Funktionen exportieren soll. Ich habe sie exportiert und es hat funktioniert, vielen Dank! – tseaver

Antwort

1

Sunil D. fragte, ob ich meine Funktionen exportiert hätte, und ich nicht. Ich muss den Abschnitt übersprungen haben, der mir gesagt hat. Wenn Sie die gleichen Probleme haben wie ich, stellen Sie sicher, dass Ihre Funktionen in Ihren Haupt-JavaScript-Skriptdateien exportiert werden.