错误:超出2000毫秒的超时。对于异步测试和挂钩,请确保" done()"叫做;如果返回Promise,请确保它已解决

时间:2017-12-24 18:18:47

标签: mocha chai

我试图在我的mocha测试中插入db中的值我收到此错误我尝试了以下几种方法,但没有任何效果。

var assert=require('chai').assert;
const user=require('../model/user')

我试过双向

describe('insertDataLasone',()=>{
    it('should save the value ',(done)=>{
        var User = new user({fname:'test'});
        User.save().then(done=>{
            done()
        }).catch(done=>done())
    })
})

describe('User', function() {
    describe('#save()', function() {
        // this.timeout(5000)
      it('should save without error', function(done) {          
        var User5 = new user({fname:'test'});
        User5.save(function(done) {
          if (err) done(err);
          else setTimeout(done,3000);
        });
      });
    });
  });

1 个答案:

答案 0 :(得分:0)

在测试中未调用done()时会发生此错误。请务必致电done()

var assert = require('chai').assert;
const User = require('../model/user');

describe('insertDataLasone', () => {
  it('should save the value ', done => {
      var user = new User({ fname: 'test' });
      user.save().then(() => {
        done();
      })
      .catch(done); // mocha done accepts Error instance
  });
});

var assert = require('chai').assert;
const User = require('../model/user');

describe('User', function() {
  describe('#save()', function() {
    it('should save without error', function(done) {
      var user5 = new User({ fname: 'test' });
      user5.save(function(err) {
        if (err) done(err);
        else done();
      });
    });
  });
});

仔细阅读https://mochajs.org/#asynchronous-code