2016-07-12 13 views
1

Ich versuche einen Komponententest über meine Datei routes.js mit Mocha und Chai zu schreiben. Ich habe eine Funktion in routes.js definiert und eine Testdatei definiert, in der sich mein Testfall befindet.Kann die Eigenschaft 'get' von undefined nicht für Unit-Tests in Mocha lesen

Wenn ich mein Testfall leite, seine den Fehler TypeError: Cannot read property 'get' of undefined ist

Mein Code für test.js zeigt

var expect = require('chai').expect; 
var chai = require('chai'); 
var app = ('../api/smartAccount/identifyLoan/getDirectDebitTrans/routes'); 

describe("Unit testing for function", function(){ 
    it("Testing the function using mocha", function(done){ 
     var req = { 
      queryString: 101 
     }; 

     var test = app.getUser.get(req); 
     expect(test).to.be.an('undefined'); 
     done(); 
    }); 
}); 

I req bin vorbei, wie ich req.queryString.id in erwarte ich meine routes.js.

Code von routes.js ist

var config = require("../../../../serverConfig/config"); 

module.exports = { 
    getUser: { 
     get: function(req, parameters, environment) { 

     var id = req.queryString.id; 

     //functionality 
     }); 
    } 
} 

Bitte helfen, wo ich falsch werde.

p.s bekommen Funktion holt Daten von DB, aber ich habe nicht erwähnt, die BD-Verbindung, wie ich fühle es von Belanglosigkeit hier. TIA

Antwort

0

Nichts beängstigend hier. Sie vermissen die require Stichwort in test.js ‚s

var app = ('../api/smartAccount/identifyLoan/getDirectDebitTrans/routes');

Daher;

var expect = require('chai').expect; 
var chai = require('chai'); 
var app = require('../api/smartAccount/identifyLoan/getDirectDebitTrans/routes'); 

Wird es beheben.

Ohne das require Schlüsselwort, variable app ist nur eine Zeichenfolge mit dem Wert von ../api/smartAccount/identifyLoan/getDirectDebitTrans/routes' und der Code stirbt, wenn es um die Nicht-Existenz get Eigenschaft zuzugreifen versucht. Und das ist offensichtlich in Ihrer Fehlermeldung TypeError: Cannot read property 'get' of undefined

+0

thanx, es war ein dummer Fehler fehlt auf erfordern, können Sie mir sagen, wie diese 'req.queryString.id' im Testfall übergeben? –

+0

@AjitejKaushik froh, dir zu helfen, aber ich verstehe nicht, was du meinst, indem du "req.querystring.id" im Testfall passierst ". Willst du damit helfen, dass der Test grün wird? Oder die 'req.querystring.id' an etwas wo? –

+0

Übergeben von 'req.queryString.id' an routes.js mithilfe von test.js, was soll ich diesen Parameter übergeben? –