Jestjs 将jest日志参数传递到导致测试失败的函数中
我正在编写一系列jest测试脚本,为了使代码更紧凑,我将它们放在一个数组中:Jestjs 将jest日志参数传递到导致测试失败的函数中,jestjs,Jestjs,我正在编写一系列jest测试脚本,为了使代码更紧凑,我将它们放在一个数组中: test('buttonPadding', function () { const expectedResults = [ { iconPosition: 'center', small: true, expectedResult: undefined }, { iconPosition: 'center', small: false, expectedResult: undefined },
test('buttonPadding', function () {
const expectedResults = [
{ iconPosition: 'center', small: true, expectedResult: undefined },
{ iconPosition: 'center', small: false, expectedResult: undefined },
{ iconPosition: 'left', small: true, expectedResult: '10px 20px 10px 20px' },
{ iconPosition: 'left', small: false, expectedResult: '17px 42px 18px 42px' },
{ iconPosition: 'right', small: true, expectedResult: '10px 20px 10px 20px' },
{ iconPosition: 'right', small: false, expectedResult: '17px 42px 18px 42px' },
];
expectedResults.forEach(({ iconPosition, small, expectedResult }) => {
expect(buttonPadding({ iconPosition, small })).toEqual(expectedResult);
});
});
缺点是当发生错误时,它会显示expect(buttonPad…
行作为错误发生的位置,但不会显示传递到测试函数中的参数
是否有可以传递给expect()
函数的内容,允许您在发生错误时输出某种类型的日志,以便我查看是什么导致测试失败的
我想知道的是,iconPosition和small在使测试失败方面的作用是什么。找到了一种更好的方法,并且通过将foreach放在
测试()之外,使测试更加孤立。
通过将名称传递到测试日志中,它可以显示传入的内容以及失败时的结果。我还可以建议使用或类似以下方法:
describe.each(
[
['center', true, undefined],
['center', false, undefined],
['left', true, '10px 20px 10px 20px'],
['left', false, '17px 42px 18px 42px'],
['right', true, '10px 20px 10px 20px'],
['right', false, '17px 42px 18px 42px'],
]
)('with params (%p, %p)', (iconPosition, small, expectedResult) => {
it(`should return: ${expectedResult}`, () => {
expect(buttonPadding({ iconPosition, small })).toEqual(expectedResult);
})
});
describe.each(
[
['center', true, undefined],
['center', false, undefined],
['left', true, '10px 20px 10px 20px'],
['left', false, '17px 42px 18px 42px'],
['right', true, '10px 20px 10px 20px'],
['right', false, '17px 42px 18px 42px'],
]
)('with params (%p, %p)', (iconPosition, small, expectedResult) => {
it(`should return: ${expectedResult}`, () => {
expect(buttonPadding({ iconPosition, small })).toEqual(expectedResult);
})
});