【发布时间】:2016-07-29 18:14:01
【问题描述】:
我有以下单元测试
knex.transaction(function(trx) {
wrapperobj.insertData(trx, (err, res) => {
if (err) {
return done(err);
}
expect(result.rowCount).to.be.equal(2); //fails, rowcount is 1
trx.rollback(new Error('rollback'));
})
})
.asCallback((err, result) = > {
expect(err).to.match(/rollback/);
done();
});
它打印 2 个失败 1) 未捕获的 AssertionError:预期 1 等于 2。这是预期的。 2)“每个”钩子......错误:超过2000毫秒的超时。确保在此测试中调用了 done() 回调。
如何防止出现第二条失败消息。
我可以像下面这样放 try catch,但看起来不整齐
knex.transaction(function(trx) {
wrapperobj.insertData(trx, (err, res) => {
try {
expect(err).to.be.null;
expect(result).not.to.be.empty;
expect(result.rowCount).to.be.equal(2);
}
catch(err1) {
done(err1);
}
trx.rollback(new Error('rollback'));
})
.asCallback((err, result) => done())
【问题讨论】:
标签: javascript node.js mocha.js knex.js