在mocha中测试没有回调的异步方法

时间:2016-03-08 10:51:41

标签: javascript testing asynchronous mocha sinon

我有一个异步方法,运行数据库查询,然后写入日志。它没有返回任何内容,也不需要回调。

可以纯粹为测试添加一个回调,但我的首选是监视日志方法并基于此传递或失败测试,​​而不是纯粹为测试添加功能

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后立即失败吗?

1 个答案:

答案 0 :(得分:0)

你可以使用sinon来监视“TestableMode.log.info”,而不是仅仅为了测试目的而引入一个回调。如果很难在监视log.info时实现断言,你甚至可以尝试发出成功和错误事件在数据库查询的回调中,这样你就可以在事件发出时调用mocha的完成回调。