javascript - Mocha 是否提供参数化测试 "@Theory"样式的选项?

标签 javascript testing mocha.js parameterized

JUnit 和 N/XUnit 都使我们能够对仅在输入值和预期结果方面有所不同的测试进行参数化。换句话说,我们可以静态定义测试数据集(输入+预期结果),让一个测试执行并验证每个输入集的结果。我们可以使用至少两个实用程序在 JS 中执行相同的操作。

但是,对于 Java 和 .Net,我们可以更加概括测试,而不是针对特定值进行测试,我们可以使用理论(“@Theory”和“[理论]”)。

JS 中有什么实用程序可以在编写测试时实现这种抽象级别?

最佳答案

我想做一些类似的事情,只是通过创建一个带有输入/输出参数的数组并在循环中调用它来解决它。这只是一个基本示例,但我可能会继续对其进行更多研究,以了解我可以让它做什么。

describe('Arrow', () => {
  const theories = [
    [undefined, "left-arrow", "<"],
    ["left", "left-arrow", "<"],
    ["right", "right-arrow", ">"]
  ];

  theories.forEach(([dir, className, arrow]) => {
    it(`should render the correct arrow given ${dir} direction`, () => {
      const wrapper = shallow(<Arrow dir={dir} onClick={jest.fn()} />);
      expect(wrapper.hasClass(className)).toEqual(true);
      expect(wrapper.text().toEqual(arrow);
    });
  });

关于javascript - Mocha 是否提供参数化测试 "@Theory"样式的选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52884685/

相关文章:

javascript - 如何使用具有函数结果值的新属性来扩展集合中的每个对象

javascript - 如何水平对齐两个 React 组件?

api - 使用 karate.fork 时如何获取特定值?

testing - Grails 测试 JMS 消息传递

testing - 用户验收测试与测试用例场景和功能测试之间的差异

unit-testing - 使用 Mocha 设置 TypeScript 单元测试

javascript - Mocha、Chai 和 Sinon 未处理的 promise 拒绝警告

Javascript 每天倒计时

javascript - jquery切换器的效率

node.js - 在 Node.js 中对 S3 上传进行 stub