我是否有理由更喜欢一种方法?以下是一些示例:
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
语法似乎有点困难,尤其是当您可以执行本机javascript迭代来实现似乎相同的效果时。拆卸/设置仍然以相同的方式发生(据我所知)。
答案 0 :(得分:1)
好问题!
从表面上看,这两者基本上是等价的,但您可能想要使用 .each
的原因有几个。
forEach
中的期望失败,它将立即失败并停止执行。这让您对 forEach
中的其他测试是通过还是失败一无所知。使用 .each
,它基本上是为数组中的每个项目编写一个单独且不同的测试。forEach
中的期望失败,数组中的哪个项目导致失败并不总是很明显。在 .each
中,您会自动从唯一的测试名称中获取上下文。.each
,您可以使用 tagged template literals 轻松处理多个参数,并且随着参数的增长,.each
可以比具有任意值的数组更具表现力和可读性。立>
.each
会为每个项目创建一个单独的测试,因此最终报告会让您看起来好像编写了比实际更多的测试。当您查看最终输出时,这只是一件让您感到满意的小事。