如何在 jest 的 test.each api 中格式化测试标题

jest 中的每个 API 都非常方便,但我不确定当行由非基本数据类型组成时如何创建标题。


在下面的示例中,我想命名测试test function ${f.name},但我似乎无法弄清楚如何通过“位置注入参数”来完成此操作?


const t1 = () => 't';

const t2 = () => 't';


test.each([t1, t2])('test function %???', f => { // what to use instead of %??? here ?

   console.log(`test function ${f.name}`);

   expect(f()).toBe('t');

});


小唯快跑啊
浏览 108回答 1
1回答

慕无忌1623718

你应该使用%p. 该符号使用漂亮格式包来字符串化任何 JavaScript 值,甚至function. 看一下test.each(table)(name, fn, timeout)。例如const t1 = () => 't';const t2 = () => 't';test.each([t1, t2])('test function %p', (f) => {  console.log(`test function ${f.name}`);  expect(f()).toBe('t');});测试结果: PASS  src/stackoverflow/65042421/index.test.ts (15.895s)  ✓ test function [Function t1] (15ms)  ✓ test function [Function t2] (1ms)  console.log src/stackoverflow/65042421/index.test.ts:5    test function t1  console.log src/stackoverflow/65042421/index.test.ts:5    test function t2Test Suites: 1 passed, 1 totalTests:       2 passed, 2 totalSnapshots:   0 totalTime:        17.14s
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript