2016-03-08 122 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的斷言,您甚至可以嘗試發出成功錯誤事件在數據庫查詢的回調中,以便您可以在事件發出時調用摩卡的完成回調。