使用mocha测试节点应用程序

时间:2016-01-06 13:19:18

标签: node.js mocha

我有以下基于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甚至将该功能显示为有效呼叫。知道为什么我会收到这个错误吗?

提前致谢。 奥利弗

1 个答案:

答案 0 :(得分:0)

我找出了上面代码的问题。要实例化app变量,必须使用new关键字。我并不认为这是必需的,因为我认为它纯粹是一个函数调用而不是构造函数调用,它需要new关键字。以下是工作代码供您参考。

var app = new server.NodeTestApp();