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');});
1 回答
慕无忌1623718
TA贡献1744条经验 获得超4个赞
你应该使用%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 t2
Test Suites: 1 passed, 1 total
Tests: 2 passed, 2 total
Snapshots: 0 total
Time: 17.14s
添加回答
举报
0/150
提交
取消