#javascript #jestjs
#javascript #jestjs
Вопрос:
Каждый API в jest довольно удобен, но я не уверен, как создать заголовок, когда строки состоят из неосновных типов данных.
В следующем примере я хотел бы назвать тест 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:
Вы должны использовать %p
. Этот символ использует пакет pretty-format для упорядочивания любого значения JavaScript, даже function
. Взгляните на test.each(таблица)(имя, fn, время ожидания).
Например.
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