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

Ben*_*Ben 1 mocha.js node.js express

我刚刚开始使用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();
    });
});
Run Code Online (Sandbox Code Playgroud)

我在运行测试时遇到以下错误:

1次传球(48ms)1失败

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

任何人都可以建议导致"毕竟"钩子错误的原因是什么?

ian*_*lly 5

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

var server;

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

 ....

after(function() {
    server.close();
});
Run Code Online (Sandbox Code Playgroud)