node 单元测试

  

  一、断言

    在node中可以通过 var assert = require('assert'); 方式引入assert模块,其主要检测方法如下:

    1. ok():判断结果是否为真;

    2. equal():判断实际值与期望值是否相等;

    3. notEqual():判断实际值与期望值是否不相等;

    4. deepEqual():判断实际值与期望值是否深度相等(对象或数组的元素是否相等);

    5. notDeepEqual():判断实际值与期望值是否不深度相等;

    6. strictEqual():判断实际值与期望值是否严格相等(相当于===);

    7. notStrictEqual():判断实际值与期望值是否不严格相等(相当于!==);

    8. throws():判断代码块是否拋出异常;

    9. doesNotThrow():判断代码块是否没有拋出异常;

    10. ifError():判断实际值是否为一个假值(null、undefined、0、''、false),如果实际值为真值,将会拋出异常。

  二、测试框架

    以mocha,安装命令如下:

npm install mocha -g

    查看报告格式:

mocha --reporters

    生成报告:

mocha -R <reporter>

  三、测试代码的文件组织

    包规范中定义了测试代码存在于test目录中,而模块代码存在于lib目录下,想运行单元测试,别忘记在package.json中添加依赖关系。

  四、测试用例

    对主要功能的测试方法至少具备:

    1. 正向测试;
    2. 反向测试;
    3. 异步测试;
    4. 超时测试;

   五、测试覆盖率

    本例通过jscover模块来检测每一行代码是否被执行,安装代码:

npm install jscover -g

    

  六、mock

    通过伪造被调用方来测试上层代码的健壮性;

    

原文地址:https://www.cnblogs.com/webcabana/p/13386473.html