unit-testing - 使用 Mocha 进行参数化测试

标签 unit-testing mocha.js

如何使用 Mocha 创建参数化测试?

示例用例:我有 10 个类,它们是同一接口(interface)的 10 个不同实现。我想为每个类(class)运行完全相同的一套测试。我可以创建一个函数,将类作为参数并使用该类运行所有测试,但是我将在一个函数中进行所有测试 - 我将无法将它们很好地分离到不同的“描述”子句。 ..

在 Mocha 中是否有一种自然的方法可以做到这一点?

最佳答案

实际上 mocha 文档指定了如何创建你想要的 here

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);
    });
  });
 });
Jacob 提供的答案是正确的,只是您需要在迭代之前先定义变量。

关于unit-testing - 使用 Mocha 进行参数化测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17569382/

相关文章:

java - 断言某些参数化 vector 会在 JUnit 中抛出异常?

python - Python 中的自定义错误消息

javascript - Mocha Js : I can't print/debug anything on screen

visual-studio - 如何为 64 位平台运行 vstest.console.exe 进行单元测试

C# 单元测试 (Nunit) 控制台应用程序的主要方法?

objective-c - 为什么当我测试一个方法抛出异常并且该方法抛出异常时,测试会停止?

javascript - Mocha - 测试 Promise, `done` 永远不会在 Promise 中被调用

node.js - Mocha 运行正确,但显示未定义

ruby-on-rails - 为什么要使用 Mocha rails ?那个有什么用途

node.js - 纽约 + Mocha + es6 模块