【发布时间】:2017-09-25 20:34:22
【问题描述】:
我正在尝试测试在回调中调用了某个函数,但是我不明白如何包装外部函数。我使用 mocha 作为我的测试套件,使用 chai 作为我的断言库,使用 sinon 作为我的假货。
fileToTest.js
const externalController = require('./externalController');
const processData = function processData( (req, res) {
externalController.getAllTablesFromDb( (errors, results) => {
// call f1 if there are errors while retrieving from db
if (errors) {
res.f1();
} else {
res.f2(results);
}
)};
};
module.exports.processData = processData;
最后我需要验证如果getAllTablesFromDb有错误会调用res.f1,如果没有错误会调用res.f2。
从这个 sn-p externalController.getAllTablesFromDb 可以看出,它是一个接受回调的函数,在这种情况下,我使用箭头函数创建了回调。
谁能解释我如何强制回调失败或 getAllTablesFromDb 成功,以便我可以使用间谍或模拟来验证 f1 或 f2 是否被调用?
【问题讨论】:
标签: javascript callback mocking spy sinon-chai