【问题标题】:Testing an async method with no callback in mocha在 mocha 中测试没有回调的异步方法
【发布时间】:2016-03-08 10:51:41
【问题描述】:

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

可以添加纯粹用于测试的回调,但我的偏好是监视 log 方法并基于此通过或失败测试,​​而不是纯粹为测试添加功能

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 时测试失败吗?

【问题讨论】:

    标签: javascript testing asynchronous mocha.js sinon


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-13
      • 2012-06-29
      • 2017-11-18
      • 2017-06-20
      • 1970-01-01
      • 1970-01-01
      • 2015-09-16
      • 1970-01-01
      相关资源
      最近更新 更多