2016-03-08 99 views
0

我有一个异步方法,运行数据库查询并写入日志。它不返回任何东西,也不需要回调。测试摩卡中没有回调的异步方法

可以纯粹添加回调做检查,但我更倾向于将基于该窥视日志方法和合格或不合格的测试,而不是纯粹的测试

TestableMode.method = function() { 


TestableMode.asyncThing(function(err) { 
    if (err) { 
     TestableMode.log.error('Log Error', { 
      'error': err 
     }); 
    } else { 
     TestableMode.log.info('Write results'); 

    } 
}); 

添加功能};

目前,我正在使用摩卡来运行我的测试。在其他测试中,我使用sinon来监视方法,我可以使用这些spys作为断言的触发器吗?一旦TestableMode.log.info被调用,我可以通过一次测试,一旦调用TestableMode.log.error就会失败吗?

回答

0

您可以使用sinon来窥探“TestableMode.log.info”,而不是纯粹为了测试目的而引入回调。如果它难以实现对spy.info的断言,您甚至可以尝试发出成功错误事件在数据库查询的回调中,以便您可以在事件发出时调用摩卡的完成回调。

相关问题