Jestjs 将jest日志参数传递到导致测试失败的函数中

Jestjs 将jest日志参数传递到导致测试失败的函数中,jestjs,Jestjs,我正在编写一系列jest测试脚本,为了使代码更紧凑,我将它们放在一个数组中: test('buttonPadding', function () { const expectedResults = [ { iconPosition: 'center', small: true, expectedResult: undefined }, { iconPosition: 'center', small: false, expectedResult: undefined },

我正在编写一系列jest测试脚本,为了使代码更紧凑,我将它们放在一个数组中:

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);
        })
      });