摩卡'之后'失败说它无法找到'app'

时间:2016-02-28 03:40:21

标签: express mocha

好的,如果我注释掉“之前”和“之后”方法,我的摩卡测试将会通过。我确信我的两个错误都是彼此相关的。

'after'方法失败,说明app.close不是一个函数。 'before'方法失败,说它无法在我的第7行(清除服务器缓存)找到'app'。

我完全没有选择或想法。我希望能够按照我的命令启动和停止我的服务器。这是我第一次尝试将任何类型的'before / after'方法包含在我的mocha测试中。下面的工作代码,但我的失败部分已注释掉了。有什么建议??

var request = require('supertest');
var app = require('../../server');

describe('server', function() {
    before(function () {
        //var app = require('../../server')();
        //delete require.cache[require.resolve('app')];
    });
    after(function () {
        //app.close();
    });
    describe('basic comms', function() {
        it('responds to root route', function testSlash(done) {
            request(app)
                .get('/')
                .expect('Content-type', /json/)
                //.expect(res.message).to.equal('Hello World!')
                .expect(200, done);
        });
        it('404 everything else', function testPath(done) {
            //console.log('testing 404 response');
            request(app)
                .get('/foo/bar')
                .expect(404, done);
        });
    });
});

1 个答案:

答案 0 :(得分:0)

before中,您需要的方式与第2行不同。为什么不使用已经要求的应用?

示例:

before(function () {
    // here you can use app from line 2
});

关于app.close,您在哪里找到此功能?

检查Express文档: http://expressjs.com/en/4x/api.html#app

要关闭快速服务器,您可以使用以下方法:

how to properly close node-express server?