我该如何对刚刚返回的else语句进行单元测试。 -Sinon Node.js

时间:2018-11-07 01:36:04

标签: node.js unit-testing sinon

我正在使用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;
        }
    });
}

1 个答案:

答案 0 :(得分:0)

我以以下方式理解您的问题:您要测试的功能将在某些情况下产生作用,或者只是“不执行任何操作”。现在,您要测试软件运行到“不执行任何操作”路径的情况。但是,您不确定如何在测试代码中验证该函数没有执行任何操作。

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