单元测试

一. 单元测试的基本介绍:

1. 什么是单元测试:

  • 单元测试即对一个模块、一个函数或者一个类来进行正确性校验的测试工做

2. 单元测试的意义:

  • 能够确保一个程序模块的行为符合咱们设计的测试用例。这样,即便未来对程序模块进行了修改、重构,只要测试用例可以经过,就能最大程度保证该程序模块是正确的

3. 单元测试的注意点:

  1. 对每个单元进行测试时,须要写多个测试用例,这样才能保证测试结果的准确性
  2. 这要求在开发时,各个单元要尽可能解耦,不然单元是不可测的
  3. 单元测试强调的是对程序逻辑的测试,而不是对业务逻辑的测试,例如:
    • 测试某个函数的输出结果是否符合预期——程序逻辑,可使用单元测试
    • 检测某个表单的输入值是否符合规范——业务逻辑,不能使用单元测试

二.单元测试的基本实现:

测试内容:测试求和函数javascript

测试工具:Node.js的assert模块,该模块具体用法详见Node.js的官方文档前端

  1. 编写一个hello.js文件,输出一个简单的求和函数
// hello.js
module.exports = function(...rest) {
    var sum = 0;
    for(let n of rest) {
        sum += n;
    }
    return sum;
}
复制代码
  1. 编写一个test.js文件,使用assert模块对该函数进行测试:
// test.js
const assert = require('assert');
const sum = require('./hello');

assert.strictEqual(sum(), 0);
assert.strictEqual(sum(1), 1);
assert.strictEqual(sum(1, 2), 3);
assert.strictEqual(sum(1, 2, 3), 6;
复制代码

只要有一项测试没经过,断言就会失败,抛出错误java

三.前端单元测试的工程化、自动化

上述案例为咱们展现了如何实现一个简单的单元测试,可是有一个明显的缺陷就是:只要有一个assert报错,就会终止整个程序的执行,后面的测试也就没法测试了,这对于咱们的实际项目而言显然是不够的,为此,要实现自动化的前端测试,须要借助一些开源框架。架构

1.单元测试框架——Mocha

Mocha是基于Node.js的JavaScript测试框架,具备以下的一些特色:框架

  1. 兼容多种风格的断言库
  2. 测试用例可进行分组
  3. 同步兼异步的测试架构
  4. 提供多个生命周期钩子

mocha的使用总结异步

2.测试框架驱动器——Karma

  • karma是测试框架的驱动器,它为测试提供了多种测试环境,可运行单元测试框架(例如mocha)在这些环境中进行测试,并生成测试报告

测试框架的驱动器 的理解:函数

  • 若是只是使用mocha整个测试框架来进行开发测试,则每次开发完一个模块,就必须手动启动mocha来进行测试,这就很是的麻烦
  • 使用karma,便可在开发时进行自动对新的代码进行测试,生成测试报告

Karma的使用总结工具

相关文章
相关标签/搜索