2016-01-06 148 views
0

我已經基於由openshift提供的模板下面的測試應用程序。測試節點的應用與摩卡

server.js:

var express = require('express'); 

exports.NodeTestApp = function() { 
    self.cache_get = function (key) { 
      return 'Would be a value here'; 
    }; 
} 

server_test.js:

var server = require('../server'); 

describe('Server', function(){ 
    describe('Startup',function(){ 
     it('sets up routes during startup',function(){ 
      var app = server.NodeTestApp(); 
      app.cache_get('/'); 

      expect(app.routes.size).to.equals(5); 
     }) 
    }) 
}) 

當我運行這個測試我得到cache_get沒有定義錯誤消息。

TypeError: Cannot read property 'cache_get' of undefined at Context.<anonymous> (test/server_test.js:7:16)

我本來以爲是在NodeTestApp功能指定的一切都是通過可變應用程序可用。 IntelliJ甚至向我展示了這個函數作爲一個有效的調用。任何想法,爲什麼我得到這個錯誤?

在此先感謝。 奧利弗

回答

0

我想通了這個問題與上面的代碼。要實例化應用程序變量,必須使用new關鍵字。我不認爲這是必需的,因爲我本來以爲它純粹是一個函數調用,而不是一個構造函數調用,這就需要新的關鍵字。以下是您參考的工作代碼。

var app = new server.NodeTestApp();