我有以下基于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函数中指定的所有内容都可以通过变量app获得。 IntelliJ甚至将该功能显示为有效呼叫。知道为什么我会收到这个错误吗?
提前致谢。 奥利弗
答案 0 :(得分:0)
我找出了上面代码的问题。要实例化app变量,必须使用new关键字。我并不认为这是必需的,因为我认为它纯粹是一个函数调用而不是构造函数调用,它需要new关键字。以下是工作代码供您参考。
var app = new server.NodeTestApp();