测试利器Mocha 互动版

动态生成测试

由于mocha 可以使用 function.prototype.call 和function 表达式定义测试套件和测试用例,所以可以动态生成测试用例。

var assert = require('assert');

function add() {
  return Array.prototype.slice.call(arguments).reduce(function(prev, curr) {
    return prev + curr;
  }, 0);
}

describe('add()', function() {
  var tests = [
    {args: [1, 2],       expected: 3},
    {args: [1, 2, 3],    expected: 6},
    {args: [1, 2, 3, 4], expected: 10}
  ];

  tests.forEach(function(test) {
    it('correctly adds ' + test.args.length + ' args', function() {
      var res = add.apply(null, test.args);
      assert.equal(res, test.expected);
    });
  });
});
  1. 在tests文件夹中创建一个dynamically.js文件
  2. 再把上述中的示例写入到我们新创建的dynamically.js文件当中,然后点击保存文件。(不建议拷贝)
  3. 最后在右边linux环境中输入命令 mocha dynamically.js, 运行我们的示例。(要进入到tests文件夹中在运行命令)