Javascript 如何使每个块描述在笑话中动态?

Javascript 如何使每个块描述在笑话中动态?,javascript,node.js,jestjs,jasmine,Javascript,Node.js,Jestjs,Jasmine,我正在使用一个jest it.each块来减少相同场景下测试用例的重复性,但我无法动态更新it块描述。怎么做 示例测试用例 const testData = [ { module: 'test_module', entityName: 'test_entity' }, { module: 'test_module1', entityName: 'test_entity1' }, ]; it.each(test

我正在使用一个jest it.each块来减少相同场景下测试用例的重复性,但我无法动态更新it块描述。怎么做

示例测试用例

const testData = [
    {
      module: 'test_module',
      entityName: 'test_entity'
    },
    {
      module: 'test_module1',
      entityName: 'test_entity1'
    },
  ];

 it.each(testData)(`should perform get respose - ${entityName}`, async (entityDetails: any) => {
       
         const url = `${entityDetails.module}/${entityDetails.entityName}/all/`;
        // Executing
        const response = await request(server).get(url);
        // Verifying
        expect(response.status).toBe(200);

});

在这个提供的示例中,我需要实体名称动态地包含在它的块描述中。类似于
应执行get respose-测试实体
应执行get respose-测试实体1

如何实现这一点?

它。每个
都需要一个数组,并按照指定的顺序在描述和函数参数中提供它们。它提供的唯一便利是描述字符串是格式化的,不需要字符串文字:

const testData = [
  ['test_entity', 'test_module'],
  ...
];

it.each(testData)('should perform get respose - %s', (_entityName, entityDetails) => ...)
为了更灵活地使用而不受这些限制,可以使用JavaScript循环:

const testData = [
  {
    module: 'test_module',
    entityName: 'test_entity'
  },
  ...
];

testData.forEach(({ module, entityName }) => {
  it(`should perform get respose - ${entityName}`, () => ...)
});

谢谢你的努力。但我不能改变我的逻辑。它应该是一个对象数组,应该使用
it实现。每个
,都有其他解决方案。或者这是不可能的?如果你能修改
它。每行
都意味着你可以用更适合你情况的
forEach
替换它。检查每个
文档,它能做的一切都在那里。如果它不是数组数组,则需要将其转换为它,
it.each(testData.map(o=>[…Object.values(o)].reverse())(…)
需要反向
,因为entityName应该首先用作测试标题中的
%s
。@muthu如果您需要测试用例中的对象@Teneff,我已经更新了测试用例中的过程,您的建议对我有何作用?请建议。