我如何对刚刚返回的else语句进行单元测试。 - Nodejs,Sinon

问题描述 投票:0回答:1

我正在使用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;
        }
    });
}
node.js unit-testing sinon
1个回答
0
投票

我通过以下方式理解您的问题:您要测试的功能将根据特定条件产生一些影响,或者只是“无所事事”。现在,您要测试软件运行到“无所事事”路径的情况。但是,您不确定如何在测试代码中验证函数什么也没做。

简单地说,验证是。只是为了验证没有发生任何影响。例如,如果效果是全局变量的修改,则无效是全局变量保持其值。如果效果是某个对象的某个方法被调用,那么非效果就是没有调用相应的方法 - 模拟库提供了对这种情况的检查,即检查某个函数是否未被调用。如果效果是某些数据被输入到数据库中,则无效是在数据库中找不到相应的数据(尽管这不是单元测试示例,而是集成测试示例) 。

© www.soinside.com 2019 - 2024. All rights reserved.