我正在尝试测试在回调中调用了某个函数,但是我不明白如何包装外部函数。我使用 mocha 作为我的测试套件,使用 chai 作为我的断言库,使用 sinon 作为我的假货。
文件测试.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。
从这个片段中可以看出 externalController.getAllTablesFromDb 是一个接受回调的函数,在这种情况下,我使用箭头函数创建了回调。
有人可以解释我如何强制 getAllTablesFromDb 回调错误或成功,以便我可以使用间谍或模拟来验证 f1 或 f2 是否被调用?