我正在使用test.each来运行功能的输入数据的某些组合:
const combinations = [
[0,0],
[1,0], // this combination doesn't work, I want to skip it
[0,1],
[1,0],
[1,1],
]
describe('test all combinations', () => {
test.each(combinations)(
'combination a=%p and b=%p works',
(a,b,done) => {
expect(foo(a,b).toEqual(bar))
});
});
现在,这些组合中的某些组合目前不起作用,我想暂时跳过这些测试。如果仅进行一次测试,我只会做test.skip
,但是如果我想跳过输入数组中的某些特定值,我不知道这是如何工作的。
答案 0 :(得分:1)
不幸的是,笑话不支持用于跳过组合元素的注释。您可以执行以下操作,在其中使用一个简单的函数过滤掉不需要的元素(我写的很快,您可以对其进行改进)
const combinations = [
[0,0],
[1,0], // this combination doesn't work, I want to skip it
[0,1],
[1,0],
[1,1],
]
const skip = [[1,0]];
const combinationsToTest = combinations.filter(item =>
!skip.some(skipCombo =>
skipCombo.every( (a,i) => a === item[i])
)
)
describe('test all combinations', () => {
test.each(combinationsToTest)(
'combination a=%p and b=%p works',
(a,b,done) => {
expect(foo(a,b).toEqual(bar))
});
});