完成方法"忽略"在之前的mochajs测试中

时间:2014-12-10 12:46:21

标签: node.js mocha

我对Web套接字客户端的包装器进行了单元测试。以下是测试的代码:

describe('server', function(){
    var server;
    beforeEach(function(done) {
        server = new Server(function() {
            //try to connect to the server on the expected port
            var socket = new WebSocket('ws://localhost:8081');
        });

        server.wss.on('connection', function(client) {
            server.wss.close();
            done();
        });
    });
    describe('#server', function(){
        it('starts a server on a given port', function(done) {
            var test = 1;
            test.should.be.ok;
        });
    });
});

我遇到的问题是,虽然完成被正确调用(如果我在第一次之后第二次调用,我得到一个错误,它被调用了两次)它似乎没有任何影响。即,测试将在两秒后失败:

Error: timeout of 2000ms exceeded

我对此很新,所以我可能错过了一些简单的事情......

谢谢,奥利维尔

1 个答案:

答案 0 :(得分:0)

像往常一样,一旦发布问题,你就会找到答案。

诀窍是在每个测试中调用完成。

describe('server', function(){
    var server;
    beforeEach(function(done) {
        server = new Server(function() {
            //try to connect to the server on the expected port
            var socket = new WebSocket('ws://localhost:8081');
        });

        server.wss.on('connection', function(client) {
            server.wss.close();
            done();
        });
    });
    describe('#server', function(){
        it('starts a server on a given port', function(done) {
            var test = 1;
            test.should.be.ok;
=====>      done();
        });
    });
});