2016-07-12 13 views
1

mochaとchaiを使用してファイルroutes.jsの単体テストを作成しようとしています。私はroutes.jsで関数を定義し、テストケースがそこにあるテストファイルを定義しました。mochaで単体テストのプロパティ 'get'を読み取れません

私は私のテストケースを実行していた場合、test.jsのためにそのエラーを示すTypeError: Cannot read property 'get' of undefined

私のコードは、私は私の中でreq.queryString.idを期待していて、私はREQを渡しています

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(); 
    }); 
}); 

ですroutes.js。 routes.jsの

コードは、私が間違っているつもりどこ助けてください

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

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

     var id = req.queryString.id; 

     //functionality 
     }); 
    } 
} 

です。

p.s get関数はDBからデータをフェッチしていますが、私はここでは無関係であると感じているので、bd接続については触れていません。 TIA

答えて

0

何も怖いことはありません。あなたは

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

したがってtest.jsの中requireキーワードが含まれていません。

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

これを修正します。

requireキーワードを指定せずに、変数app../api/smartAccount/identifyLoan/getDirectDebitTrans/routes'の値を持つ単なる文字列であり、それは非存在getプロパティにアクセスしようとしたときにコードが死にます。そして、これはあなたのエラーメッセージに明らかに示されていますTypeError: Cannot read property 'get' of undefined

+0

ありがとう、それは愚かな間違いだったので、あなたはこの 'req.queryString.id'をテストケースに渡す方法を教えていただけますか? –

+0

@AjitejKaushikは嬉しいですが、 "req.querystring.id'をテストケースに渡す"という意味がわかりません。あなたはテストを緑色にするのを助けることを意味しますか?あるいは、 'req.querystring.id'をどこかに渡します。 –

+0

'req.queryString.id'をroutes.jsにtest.jsを使って渡すと、どうすればこのparamを渡すことができますか? –

関連する問題