单元测试

一、简单入门

如果只是单纯想测试某个js函数执行的结果是否符合预期结果,可用此方法。

  1. 安装测试框架mocha和断言库chai
npm i -g mocha chai

mocha:mocha是一个基于nodejs和浏览器集合的各种特性的JavaScript测试库,并且让异步测试变得简单,支持TDD(测试驱动开发)和BDD(行为驱动开发),在测试中捕获到异常时,会给出灵活准确的报告。
chai:chai是一个基于nodejs的断言库,并且完美支持各种主流的JavaScript测试框架。

  1. 写测试用例
    在根目录下新建一个test文件夹里面放置测试用例。
    测试模块:
//add.js
function add (x, y) {
  return x + y
}
module.exports = add

测试用例:

//add.test.js
var add = require('./add.js')
//Mocha本身不带断言库,所以必须先引入断言库。
var expect = require('chai').expect

describe('加法函数测试', function () {
  // mocha提供了4个hooks钩子函数
  before(function() {
    // runs before all tests in this block
  });

  after(function() {
    // runs after all tests in this block
  });

  beforeEach(function() {
    // runs before each test in this block
  });

  afterEach(function() {
    // runs after each test in this block
   });

  // 测试用例
  it('1+1=2', function () {
    expect(add(1, 1)).to.be.equal(2) //“断言”:就是判断源码的实际执行结果与预期结果是否一致,如果不一致就抛出一个错误。
  })
})

上面这段代码,就是测试脚本,它可以独立执行。测试脚本里面应该包括一个或多个describe块,每个describe块应该包括一个或多个it块。
describe块称为"测试套件"(test suite),表示一组相关的测试。它是一个函数,第一个参数是测试套件的名称("加法函数的测试"),第二个参数是一个实际执行的函数。
it块称为"测试用例"(test case),表示一个单独的测试,是测试的最小单位。它也是一个函数,第一个参数是测试用例的名称("1 加 1 应该等于 2"),第二个参数是一个实际执行的函数。

  1. 执行测试
    Mocha默认运行test子目录里面的测试脚本。所以,一般都会把测试脚本放在test目录里面,然后执行mocha就不需要参数了。
    --watch参数用来监视指定的测试脚本。只要测试脚本有变化,就会自动运行Mocha。
mocha add.test.js --watch

or

mocha --watch

更多细节:测试框架 Mocha 实例教程

参考文章

  • mocha
  • power-assert
  • karma

你可能感兴趣的:(单元测试)