mocha + chaijs + bluebird + mongoose测试会报错,但显示通过
mocha + chaijs + bluebird + mongoose测试问题
testProducts.saveAsync().then(function(prod){
return Product.get_all_unchecked(function(err, products){
Promise.resolve(products);
});
}).then(function(products){
assert.lengthOf(products, 13, 'products`s value has a length of 3');
done()
}).catch(function(err) {
done(err);
});
说明:
当捕获到异常的时候必须将异常传给done函数,否则测试会报错,但显示通过
done(err);
只能说明自己对mocha api理解的不到位
官方的一个非常好的例子,把done的各种用法都说明的非常清楚了
describe('Connection', function(){
var db = new Connection
, tobi = new User('tobi')
, loki = new User('loki')
, jane = new User('jane');
beforeEach(function(done){
db.clear(function(err){
if (err) return done(err);
db.save([tobi, loki, jane], done);
});
})
describe('#find()', function(){
it('respond with matching records', function(done){
db.find({ type: 'User' }, function(err, res){
if (err) return done(err);
res.should.have.length(3);
done();
})
})
})
})
5 回复
为什么不把error加入断言呢?
@dayuoba 请指教~~
var fs = require('fs');
var should = require('should');
describe('test', function() {
it('should has no err,and has data', function(done) {
fs.readFile('a.txt', function(err, data) {
this.timeout = 1000;
should.not.exist(err);
should.exist(result);
done();
});
});
});
@dayuoba 谢谢~~
@i5ting you are welcome:)