gpt4 book ai didi

javascript - 使用 jest 的 test.each 与使用 forEach 循环

转载 作者:行者123 更新时间:2023-12-03 17:13:31 24 4
gpt4 key购买 nike

我是否有理由更喜欢一种方法而不是另一种?这里有些例子:

describe('some tests', () => {
[1, 2, 3].forEach(num => {
test(`${num}: test`, () => {
doSomeTestStuff(num)
})
})

// vs.

test.each([1, 2, 3])('%s: test', (num) => {
doSomeTestStuff(num)
})
})
test.each 似乎有点难以阅读语法,尤其是当您可以只进行 native javascript 迭代以实现似乎相同的效果时。拆卸/设置仍然以相同的方式发生(据我所知)。

最佳答案

好问题!
从表面上看,这两者基本上是等价的,但有几个原因您可能想要使用 .each反而。

  • 如果 forEach 中的期望失败,它将立即失败并停止执行。这使您对 forEach 中的其他测试是否存在一无所知。通过或失败。与 .each它基本上是为数组中的每个项目编写一个单独且不同的测试。
  • 如果 forEach 中的期望失败,数组中的哪个项目导致失败并不总是很明显。在 .each您会自动从唯一的测试名称中获取上下文。
  • .each您可以使用 tagged template literals轻松处理多个参数,并且随着参数的增长 .each比具有任意值的数组更具表现力和可读性。
  • 因为,正如我之前所说,.each为每个项目创建一个单独的测试,最终报告将使您看起来像您编写的测试比实际拥有的要多。只是一件小事,当您查看最终输出时会带来满足感。
  • 关于javascript - 使用 jest 的 test.each 与使用 forEach 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57171579/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com