相关疑难解决方法(0)

在 Jest 中,循环输入和预期输出数组的最佳方法是什么?

如果我想为一个将东西加在一起的计算器编写一个测试。我可能会这样定义我的测试:

const tests = [
    {
      input: [1, 2],
      expected: 3,
    },
    {
      input: [2, 1],
      expected: 3,
    },
    {
      input: [3, 4],
      expected: 7,
    },
    {
      input: [2, 10],
      expected: 12,
    },
    {
      input: [2, 5],
      expected: 7,
    },
    ...
]

  tests.forEach((t) => {
    expect(add(t.input)).toEqual(t.expected)
  })
Run Code Online (Sandbox Code Playgroud)

问题是,如果其中一项测试失败,错误只会显示:

    Expected: "7"
    Received: "10"

      216 |   tests.forEach((t) => {
    > 217 |     expect(add(t.input)).toEqual(t.expected)
          |                                        ^
      218 |   })
Run Code Online (Sandbox Code Playgroud)

由此看来,我分不清是3+4算错了,还是2+5算错了。

另一种方法是不使用数组,而是将每个数组定义为自己的测试。然而,这需要更多的代码,并且您需要将expect语句复制粘贴到各处。

那么,测试复杂的计算函数(需要传递许多不同的输入排列以确保其正常工作)的最佳方法是什么?

testing automated-tests unit-testing jestjs

4
推荐指数
1
解决办法
7216
查看次数

标签 统计

automated-tests ×1

jestjs ×1

testing ×1

unit-testing ×1