我正在使用sinon在nodejs中进行单元测试。
如何测试我的task1.js的else部分?假设如果我的计数不是0,我将继续自己的处理,否则我结束我的任务。
我可以模拟我的getbookForUpdateCount来返回计数值,但下一步是什么?
我如何确保采用该路径?
Task1.js:
function updateInfo() {
bookDao.getbookForUpdateCount(updateCountParams, function (results) {
console.log("Step 1: " + results[0].RECCOUNT + " for updates!".blue);
//1. Get count. If > 0, proceed. else end task.
if (results[0].RECCOUNT > 0) {
...
//some other functions
}
else {
//no record to be processed.
return;
}
});
}
我通过以下方式理解您的问题:您要测试的功能将根据特定条件产生一些影响,或者只是“无所事事”。现在,您要测试软件运行到“无所事事”路径的情况。但是,您不确定如何在测试代码中验证函数什么也没做。
简单地说,验证是。只是为了验证没有发生任何影响。例如,如果效果是全局变量的修改,则无效是全局变量保持其值。如果效果是某个对象的某个方法被调用,那么非效果就是没有调用相应的方法 - 模拟库提供了对这种情况的检查,即检查某个函数是否未被调用。如果效果是某些数据被输入到数据库中,则无效是在数据库中找不到相应的数据(尽管这不是单元测试示例,而是集成测试示例) 。