Как отформатировать заголовок теста в тесте.каждый api jest

#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