摩卡,快速测试错误 - “毕竟”钩子错误 - 对象功能没有方法'关闭'

时间:2014-05-27 02:37:27

标签: node.js express mocha

我刚刚开始使用Mocha,测试一个非常基本的Express 4.0 rest API。

describe('API CALL UNIT TESTING', function(){
    var app = require('../../app');
    before(function(){
        app.listen(3000);
    });

    describe('GET', function(){

        it('respond with json', function(done){
            request(app)
                .get('/api/compile')
                .set('Accept', 'application/json')
                .expect('Content-Type', 'application/json')
                .expect(200, done)
                .end(function(e, res){
                    //console.log(res)
                    done();
                })
        })
    });

    after(function() {
        app.close();
    });
});

运行测试时出现以下错误:

  

1次传球(48ms)1失败

     

1)API CALL UNIT TESTING“毕竟”钩子:        TypeError:对象函数(req,res,next){       app.handle(req,res,next);没有方法'关闭'

任何人都可以告知造成“毕竟”钩子错误的原因吗?

1 个答案:

答案 0 :(得分:5)

显然,app对象没有close()方法。你实际上并没有准确地告诉我们应用程序是什么 - 但是如果我正确地回忆了快速API,你实际上会调用listen()返回的对象上的close(),所以也许你可以试试:

var server;

before(function(){
    server = app.listen(3000);
});

 ....

after(function() {
    server.close();
});