“完成()多次呼叫”摩根与摩卡

请参阅此处的debugging器输出

var expect = require('chai').expect var User = require('../../app/models/index.js').User describe('Model User', function(){ it('add a user', function(done){ var user = new User({ uname: 'cx', password: 'cx' }) user.save() //Model#save() return Promise .then(function(user,effectNum){ done() //success state }) .catch(function(error){ done(error) //fail state }) }) }) 

使用Chai,Mocha,Moongoose我在学习moongodb时testing我的代码。 似乎是正确的但是我得到一个错误:

  0 passing (2m) 2 failing 1) Model User add a user: Error: done() called multiple times 2) Model User add a user: Error: done() called multiple times 

为什么它叫多次完成

done()callback接受一个错误,所以你可以尝试直接使用它:

 it('should add a user', function(done) { var user = new User({ uname: 'cx', password: 'cx' }); user.save(function(err) { if (err) throw err; done(); }); }); 
 describe('Model User', function(){ it('add a user', function(done){ var user = new User({ uname: 'cx', password: 'cx' }) user.save() .then(function(){ assert(false) }).then(done,done) }) }) //or describe('Model User', function(){ it('add a user', function(){ var user = new User({ uname: 'cx', password: 'cx' }) return user.save() .then(function(){ assert(false) }) }) }) 

摩卡支持诺言^ _ ^,我的错误