我有一个异步方法,运行数据库查询,然后写入日志。它没有返回任何内容,也不需要回调。
我可以纯粹为测试添加一个回调,但我的首选是监视日志方法并基于此传递或失败测试,而不是纯粹为测试添加功能
TestableMode.method = function() {
TestableMode.asyncThing(function(err) {
if (err) {
TestableMode.log.error('Log Error', {
'error': err
});
} else {
TestableMode.log.info('Write results');
}
});
};
目前,我正在使用mocha来运行我的测试。在其他测试中,我使用sinon来监视方法,我可以使用这些spys作为断言的触发器吗?我可以在调用TestableMode.log.info
后立即通过测试,并在调用TestableMode.log.error
后立即失败吗?
答案 0 :(得分:0)
你可以使用sinon来监视“TestableMode.log.info”,而不是仅仅为了测试目的而引入一个回调。如果很难在监视log.info时实现断言,你甚至可以尝试发出成功和错误事件在数据库查询的回调中,这样你就可以在事件发出时调用mocha的完成回调。