Spec-Zone.ru › Deno 2

test

Модуль node:test упрощает создание тестов JavaScript. Чтобы получить к нему доступ:

import test from 'node:test';

Этот модуль доступен только при использовании схемы node:. Следующий вариант работать не будет:

import test from 'node:test';

Тесты, созданные с помощью модуля test, состоят из одной функции, которая обрабатывается одним из трёх способов:

  1. Синхронная функция, которая считается не пройденной, если выбрасывает исключение, и пройденной в противном случае.
  2. Функция, возвращающая Promise, которая считается не пройденной, если Promise отклоняется, и пройденной, если Promise выполняется успешно.
  3. Функция, принимающая функцию обратного вызова. Если первым аргументом обратного вызова передано истинное значение, тест считается не пройденным. Если первым аргументом обратного вызова передано ложное значение, тест считается пройденным. Если тестовая функция принимает функцию обратного вызова и также возвращает Promise, тест не будет пройден.

В следующем примере показано, как писать тесты с помощью модуля test.

test('synchronous passing test', (t) => {
  // This test passes because it does not throw an exception.
  assert.strictEqual(1, 1);
});

test('synchronous failing test', (t) => {
  // This test fails because it throws an exception.
  assert.strictEqual(1, 2);
});

test('asynchronous passing test', async (t) => {
  // This test passes because the Promise returned by the async
  // function is settled and not rejected.
  assert.strictEqual(1, 1);
});

test('asynchronous failing test', async (t) => {
  // This test fails because the Promise returned by the async
  // function is rejected.
  assert.strictEqual(1, 2);
});

test('failing test using Promises', (t) => {
  // Promises can be used directly as well.
  return new Promise((resolve, reject) => {
    setImmediate(() => {
      reject(new Error('this will cause the test to fail'));
    });
  });
});

test('callback passing test', (t, done) => {
  // done() is the callback function. When the setImmediate() runs, it invokes
  // done() with no arguments.
  setImmediate(done);
});

test('callback failing test', (t, done) => {
  // When the setImmediate() runs, done() is invoked with an Error object and
  // the test fails.
  setImmediate(() => {
    done(new Error('callback failure'));
  });
});

Если какие-либо тесты не пройдены, код завершения процесса устанавливается в 1.

Использование в Deno

import * as mod from "node:test";

класс MockFunctionContext

Использование в Deno

import { MockFunctionContext } from "node:test";

Класс MockFunctionContext используется для проверки или изменения поведения имитаций, созданных с помощью API MockTracker.

Параметры типа

F extends Function

Свойства

calls: Array<MockFunctionCall<F>>
только для чтения

Геттер, возвращающий копию внутреннего массива, используемого для отслеживания вызовов имитации. Каждая запись в массиве — это объект со следующими свойствами.

Методы

callCount(): number

Эта функция возвращает количество вызовов данной имитации. Она эффективнее проверки ctx.calls.length, поскольку ctx.calls — это геттер, создающий копию внутреннего массива отслеживания вызовов.

mockImplementation(implementation: F): void

Эта функция используется для изменения поведения существующей имитации.

В следующем примере создаётся имитирующая функция с помощью t.mock.fn(), она вызывается, а затем её реализация заменяется другой функцией.

test('changes a mock behavior', (t) => {
  let cnt = 0;

  function addOne() {
    cnt++;
    return cnt;
  }

  function addTwo() {
    cnt += 2;
    return cnt;
  }

  const fn = t.mock.fn(addOne);

  assert.strictEqual(fn(), 1);
  fn.mock.mockImplementation(addTwo);
  assert.strictEqual(fn(), 3);
  assert.strictEqual(fn(), 5);
});
mockImplementationOnce(
implementation: F,
onCall?: number,
): void

Эта функция используется для изменения поведения существующей имитации на один вызов. После вызова onCall имитация вернётся к поведению, которое использовалось бы, если бы mockImplementationOnce() не вызывалась.

В следующем примере создаётся имитирующая функция с помощью t.mock.fn(), она вызывается, её реализация заменяется другой функцией для следующего вызова, а затем восстанавливается предыдущее поведение.

test('changes a mock behavior once', (t) => {
  let cnt = 0;

  function addOne() {
    cnt++;
    return cnt;
  }

  function addTwo() {
    cnt += 2;
    return cnt;
  }

  const fn = t.mock.fn(addOne);

  assert.strictEqual(fn(), 1);
  fn.mock.mockImplementationOnce(addTwo);
  assert.strictEqual(fn(), 3);
  assert.strictEqual(fn(), 4);
});
resetCalls(): void

Сбрасывает историю вызовов имитирующей функции.

restore(): void

Восстанавливает исходное поведение имитирующей функции. После вызова этой функции имитацию по-прежнему можно использовать.


класс MockModuleContext

нестабильный

Использование в Deno

import { MockModuleContext } from "node:test";

Методы

restore(): void

Восстанавливает исходную реализацию имитирующего модуля.


класс MockTimers

нестабильный

Использование в Deno

import { MockTimers } from "node:test";

Имитация таймеров — это широко используемый в тестировании программного обеспечения метод, позволяющий моделировать и контролировать поведение таймеров, таких как setInterval и setTimeout, не дожидаясь фактического истечения заданных интервалов времени.

API MockTimers также позволяет имитировать конструктор Date и функции setImmediate/clearImmediate.

MockTracker предоставляет экспорт timers верхнего уровня, который является экземпляром MockTimers.

Методы

[Symbol.dispose](): void

Вызывает MockTimers.reset().

enable(options?: MockTimersOptions): void

Включает имитацию указанных таймеров.

Примечание: При включении имитации для определённого таймера связанная с ним функция очистки также будет имитироваться неявно.

Примечание: Имитация Date повлияет на поведение имитируемых таймеров, поскольку они используют одни и те же внутренние часы.

Пример использования без задания начального времени:

import { mock } from 'node:test';
mock.timers.enable({ apis: ['setInterval', 'Date'], now: 1234 });

В приведённом выше примере включается имитация конструктора Date и таймера setInterval, а функция clearInterval имитируется неявно. Будут имитироваться только конструктор Date из globalThis, функции setInterval и clearInterval из node:timers, node:timers/promises и globalThis.

Пример использования с заданным начальным временем

import { mock } from 'node:test';
mock.timers.enable({ apis: ['Date'], now: 1000 });

Пример использования с начальным значением времени в виде объекта Date

import { mock } from 'node:test';
mock.timers.enable({ apis: ['Date'], now: new Date() });

Кроме того, можно вызвать mock.timers.enable() без параметров:

Все таймеры ('setInterval', 'clearInterval', 'Date', 'setImmediate', 'clearImmediate', 'setTimeout' и 'clearTimeout') будут имитироваться.

Функции setInterval, clearInterval, setTimeout и clearTimeout из node:timers, node:timers/promises и globalThis будут имитироваться. Конструктор Date из globalThis также будет имитироваться.

Если начальная эпоха не задана, начальная дата будет соответствовать значению 0 эпохи Unix. Это January 1st, 1970, 00:00:00 UTC. Начальную дату можно задать, передав свойство now в метод .enable(). Это значение будет использоваться как начальная дата для имитируемого объекта Date. Оно может быть положительным целым числом или другим объектом Date.

reset(): void

Эта функция восстанавливает поведение по умолчанию всех имитаций, ранее созданных этим экземпляром MockTimers, и отвязывает имитации от экземпляра MockTracker.

Примечание: После завершения каждого теста эта функция вызывается для MockTracker контекста теста.

import { mock } from 'node:test';
mock.timers.reset();
runAll(): void

Немедленно запускает все ожидающие имитируемые таймеры. Если объект Date также имитируется, время объекта Date будет переведено к моменту самого позднего таймера.

В приведённом ниже примере все ожидающие таймеры запускаются немедленно, и выполняются без задержки.

import assert from 'node:assert';
import { test } from 'node:test';

test('runAll functions following the given order', (context) => {
  context.mock.timers.enable({ apis: ['setTimeout', 'Date'] });
  const results = [];
  setTimeout(() => results.push(1), 9999);

  // Notice that if both timers have the same timeout,
  // the order of execution is guaranteed
  setTimeout(() => results.push(3), 8888);
  setTimeout(() => results.push(2), 8888);

  assert.deepStrictEqual(results, []);

  context.mock.timers.runAll();
  assert.deepStrictEqual(results, [3, 2, 1]);
  // The Date object is also advanced to the furthest timer's time
  assert.strictEqual(Date.now(), 9999);
});

Примечание: Функция runAll() предназначена специально для запуска таймеров в контексте имитации таймеров. Она не влияет на системные часы реального времени или настоящие таймеры за пределами среды имитации.

setTime(time: number): void

Метод .setTime() позволяет вручную изменить дату имитации на другое время. Этот метод принимает только положительное целое число. Примечание: метод запустит все имитируемые таймеры, время которых предшествует новому времени. В приведённом ниже примере задаётся новое время для имитируемой даты.

import assert from 'node:assert';
import { test } from 'node:test';
test('sets the time of a date object', (context) => {
  // Optionally choose what to mock
  context.mock.timers.enable({ apis: ['Date'], now: 100 });
  assert.strictEqual(Date.now(), 100);
  // Advance in time will also advance the date
  context.mock.timers.setTime(1000);
  context.mock.timers.tick(200);
  assert.strictEqual(Date.now(), 1200);
});
tick(milliseconds: number): void

Продвигает время для всех имитируемых таймеров.

Примечание: Это отличается от поведения setTimeout в Node.js: здесь принимаются только положительные числа. В Node.js setTimeout с отрицательными числами поддерживается только для совместимости с веб-платформой.

В следующем примере имитируется функция setTimeout, а с помощью .tick продвигается время, запуская все ожидающие таймеры.

import assert from 'node:assert';
import { test } from 'node:test';

test('mocks setTimeout to be executed synchronously without having to actually wait for it', (context) => {
  const fn = context.mock.fn();

  context.mock.timers.enable({ apis: ['setTimeout'] });

  setTimeout(fn, 9999);

  assert.strictEqual(fn.mock.callCount(), 0);

  // Advance in time
  context.mock.timers.tick(9999);

  assert.strictEqual(fn.mock.callCount(), 1);
});

Кроме того, функцию .tick можно вызывать многократно

import assert from 'node:assert';
import { test } from 'node:test';

test('mocks setTimeout to be executed synchronously without having to actually wait for it', (context) => {
  const fn = context.mock.fn();
  context.mock.timers.enable({ apis: ['setTimeout'] });
  const nineSecs = 9000;
  setTimeout(fn, nineSecs);

  const twoSeconds = 3000;
  context.mock.timers.tick(twoSeconds);
  context.mock.timers.tick(twoSeconds);
  context.mock.timers.tick(twoSeconds);

  assert.strictEqual(fn.mock.callCount(), 1);
});

Продвижение времени с помощью .tick также продвинет время для любого объекта Date, созданного после включения имитации (если Date также настроен на имитацию).

import assert from 'node:assert';
import { test } from 'node:test';

test('mocks setTimeout to be executed synchronously without having to actually wait for it', (context) => {
  const fn = context.mock.fn();

  context.mock.timers.enable({ apis: ['setTimeout', 'Date'] });
  setTimeout(fn, 9999);

  assert.strictEqual(fn.mock.callCount(), 0);
  assert.strictEqual(Date.now(), 0);

  // Advance in time
  context.mock.timers.tick(9999);
  assert.strictEqual(fn.mock.callCount(), 1);
  assert.strictEqual(Date.now(), 9999);
});

класс MockTracker

Использование в Deno

import { MockTracker } from "node:test";

Класс MockTracker используется для управления функциями имитации. Модуль запуска тестов предоставляет экспорт mock верхнего уровня, являющийся экземпляром MockTracker. Для каждого теста также предоставляется собственный экземпляр MockTracker через свойство mock контекста теста.

Свойства

timers: MockTimers

Методы

fn<F extends Function = NoOpFunction>(
original?: F,
options?: MockFunctionOptions,
): Mock<F>

Эта функция используется для создания имитирующей функции.

В следующем примере создаётся имитирующая функция, увеличивающая счётчик на единицу при каждом вызове. Параметр times изменяет поведение имитации так, что при первых двух вызовах счётчик увеличивается на два, а не на один.

test('mocks a counting function', (t) => {
  let cnt = 0;

  function addOne() {
    cnt++;
    return cnt;
  }

  function addTwo() {
    cnt += 2;
    return cnt;
  }

  const fn = t.mock.fn(addOne, addTwo, { times: 2 });

  assert.strictEqual(fn(), 2);
  assert.strictEqual(fn(), 4);
  assert.strictEqual(fn(), 5);
  assert.strictEqual(fn(), 6);
});
fn<
F extends Function = NoOpFunction,
Implementation extends Function = F,
>
(
original?: F,
implementation?: Implementation,
options?: MockFunctionOptions,
): Mock<F | Implementation>
getter<
MockedObject extends object,
MethodName extends keyof MockedObject,
>
(
object: MockedObject,
methodName: MethodName,
options?: MockFunctionOptions,
): Mock<() => MockedObject[MethodName]>

Эта функция представляет собой синтаксический сахар для MockTracker.method, где options.getter установлено в true.

getter<
MockedObject extends object,
MethodName extends keyof MockedObject,
Implementation extends Function,
>
(
object: MockedObject,
methodName: MethodName,
implementation?: Implementation,
options?: MockFunctionOptions,
): Mock<(() => MockedObject[MethodName]) | Implementation>
method<
MockedObject extends object,
MethodName extends FunctionPropertyNames<MockedObject>,
>
(
object: MockedObject,
methodName: MethodName,
options?: MockFunctionOptions,
): MockedObject[MethodName] extends Function ? Mock<MockedObject[MethodName]> : never

Эта функция используется для создания имитации существующего метода объекта. В следующем примере показано, как создать имитацию существующего метода объекта.

test('spies on an object method', (t) => {
  const number = {
    value: 5,
    subtract(a) {
      return this.value - a;
    },
  };

  t.mock.method(number, 'subtract');
  assert.strictEqual(number.subtract.mock.calls.length, 0);
  assert.strictEqual(number.subtract(3), 2);
  assert.strictEqual(number.subtract.mock.calls.length, 1);

  const call = number.subtract.mock.calls[0];

  assert.deepStrictEqual(call.arguments, [3]);
  assert.strictEqual(call.result, 2);
  assert.strictEqual(call.error, undefined);
  assert.strictEqual(call.target, undefined);
  assert.strictEqual(call.this, number);
});
method<
MockedObject extends object,
MethodName extends FunctionPropertyNames<MockedObject>,
Implementation extends Function,
>
(
object: MockedObject,
methodName: MethodName,
implementation: Implementation,
options?: MockFunctionOptions,
): MockedObject[MethodName] extends Function ? Mock<MockedObject[MethodName] | Implementation> : never
method<MockedObject extends object>(
object: MockedObject,
methodName: keyof MockedObject,
options: MockMethodOptions,
): Mock<Function>
method<MockedObject extends object>(
object: MockedObject,
methodName: keyof MockedObject,
implementation: Function,
options: MockMethodOptions,
): Mock<Function>
module(
specifier: string,
options?: MockModuleOptions,
): MockModuleContext

Эта функция используется для имитации экспортов модулей ECMAScript, модулей CommonJS и встроенных модулей Node.js. Ссылки на исходный модуль, полученные до создания имитации, не затрагиваются.

Доступно только при использовании флага --experimental-test-module-mocks.

reset(): void

Эта функция восстанавливает поведение по умолчанию всех имитаций, ранее созданных этим MockTracker, и отвязывает их от экземпляра MockTracker. После отвязки имитации по-прежнему можно использовать, но экземпляр MockTracker больше нельзя применять для сброса их поведения или взаимодействия с ними другим способом.

После завершения каждого теста эта функция вызывается для MockTracker контекста теста. Если глобальный MockTracker используется часто, рекомендуется вызывать эту функцию вручную.

restoreAll(): void

Эта функция восстанавливает поведение по умолчанию всех имитаций, ранее созданных этим MockTracker. В отличие от mock.reset(), функция mock.restoreAll() не отвязывает имитации от экземпляра MockTracker.

setter<
MockedObject extends object,
MethodName extends keyof MockedObject,
>
(
object: MockedObject,
methodName: MethodName,
options?: MockFunctionOptions,
): Mock<(value: MockedObject[MethodName]) => void>

Эта функция представляет собой синтаксический сахар для MockTracker.method, где options.setter установлено в true.

setter<
MockedObject extends object,
MethodName extends keyof MockedObject,
Implementation extends Function,
>
(
object: MockedObject,
methodName: MethodName,
implementation?: Implementation,
options?: MockFunctionOptions,
): Mock<((value: MockedObject[MethodName]) => void) | Implementation>

класс SuiteContext

Использование в Deno

import { SuiteContext } from "node:test";

Экземпляр SuiteContext передаётся каждой функции набора тестов для взаимодействия с исполнителем тестов. Однако конструктор SuiteContext не входит в состав API.

Свойства

filePath: string | undefined
только для чтения

Абсолютный путь к файлу теста, создавшему текущий набор. Если файл теста импортирует дополнительные модули, создающие наборы тестов, импортированные наборы будут возвращать путь к корневому файлу теста.

name: string
только для чтения

Имя набора тестов.

signal: AbortSignal
только для чтения

Можно использовать для прерывания подзадач теста, если тест был прерван.


класс TestContext

Использование в Deno

import { TestContext } from "node:test";

Экземпляр TestContext передаётся каждой тестовой функции для взаимодействия с обработчиком тестов. Однако конструктор TestContext не предоставляется в составе API.

Свойства

assert: TestContextAssert
только для чтения

Объект, содержащий методы проверки, связанные с контекстом теста. Функции верхнего уровня из модуля node:assert доступны здесь для создания планов тестирования.

Примечание: Некоторые функции из node:assert содержат проверки типов. Если вызывать их через объект assert TestContext, параметр контекста в сигнатуре тестовой функции необходимо явно типизировать (то есть снабдить параметр аннотацией типа); в противном случае компилятор TypeScript выдаст ошибку:

import { test, type TestContext } from 'node:test';

// The test function's context parameter must have a type annotation.
test('example', (t: TestContext) => {
  t.assert.deepStrictEqual(actual, expected);
});

// Omitting the type annotation will result in a compilation error.
test('example', t => {
  t.assert.deepStrictEqual(actual, expected); // Error: 't' needs an explicit type annotation.
});
filePath: string | undefined
только для чтения

Абсолютный путь к файлу тестов, в котором был создан текущий тест. Если файл тестов импортирует дополнительные модули, создающие тесты, импортированные тесты будут возвращать путь к корневому файлу тестов.

fullName: string
только для чтения

Имя теста и каждого из его предков, разделённые >.

mock: MockTracker
только для чтения

Для каждого теста создаётся собственный экземпляр MockTracker.

name: string
только для чтения

Имя теста.

signal: AbortSignal
только для чтения
test('top level test', async (t) => {
  await fetch('some/uri', { signal: t.signal });
});
test: test

Эта функция используется для создания вложенных тестов в рамках текущего теста. Она работает так же, как функция верхнего уровня test.

Методы

after(
fn?: TestContextHookFn,
options?: HookOptions,
): void

Эта функция используется для создания хука, который выполняется после завершения текущего теста.

afterEach(
fn?: TestContextHookFn,
options?: HookOptions,
): void

Эта функция используется для создания хука, который выполняется после каждого вложенного теста текущего теста.

before(
fn?: TestContextHookFn,
options?: HookOptions,
): void

Эта функция используется для создания хука, который выполняется перед вложенным тестом текущего теста.

beforeEach(
fn?: TestContextHookFn,
options?: HookOptions,
): void

Эта функция используется для создания хука, который выполняется перед каждым вложенным тестом текущего теста.

diagnostic(message: string): void

Эта функция используется для вывода диагностических данных. Любая диагностическая информация добавляется в конец результатов теста. Функция не возвращает значение.

test('top level test', (t) => {
  t.diagnostic('A diagnostic message');
});
plan(count: number): void

Используется для задания ожидаемого количества проверок и вложенных тестов, которые должны быть выполнены в рамках теста. Если число выполненных проверок и вложенных тестов не совпадёт с ожидаемым, тест завершится с ошибкой.

Чтобы отслеживать проверки, необходимо использовать функции assert из context.assert, а не импортировать их из модуля node:assert.

test('top level test', (t) => {
  t.plan(2);
  t.assert.ok('some relevant assertion here');
  t.test('subtest', () => {});
});

При работе с асинхронным кодом можно использовать функцию plan, чтобы убедиться, что выполнено нужное количество проверок:

test('planning with streams', (t, done) => {
  function* generate() {
    yield 'a';
    yield 'b';
    yield 'c';
  }
  const expected = ['a', 'b', 'c'];
  t.plan(expected.length);
  const stream = Readable.from(generate());
  stream.on('data', (chunk) => {
    t.assert.strictEqual(chunk, expected.shift());
  });
  stream.on('end', () => {
    done();
  });
});
runOnly(shouldRunOnlyTests: boolean): void

Если shouldRunOnlyTests имеет истинное значение, контекст теста запускает только тесты, для которых задан параметр only. В противном случае запускаются все тесты. Если Node.js запущен без параметра командной строки --test-only, эта функция ничего не делает.

test('top level test', (t) => {
  // The test context can be set to run subtests with the 'only' option.
  t.runOnly(true);
  return Promise.all([
    t.test('this subtest is now skipped'),
    t.test('this subtest is run', { only: true }),
  ]);
});
skip(message?: string): void

Эта функция помечает тест как пропущенный в выводе. Если указано message, оно будет включено в вывод. Вызов skip() не прекращает выполнение тестовой функции. Функция не возвращает значение.

test('top level test', (t) => {
  // Make sure to return here as well if the test contains additional logic.
  t.skip('this is skipped');
});
todo(message?: string): void

Эта функция добавляет в вывод теста директиву TODO. Если указано message, оно будет включено в вывод. Вызов todo() не прекращает выполнение тестовой функции. Функция не возвращает значение.

test('top level test', (t) => {
  // This test is marked as `TODO`
  t.todo('this is a todo');
});
waitFor<T>(
condition: () => T,
options?: TestContextWaitForOptions,
): Promise<Awaited<T>>

Этот метод периодически вызывает функцию condition, пока она не выполнится успешно или не истечёт время ожидания.


класс TestsStream

реализует [NodeJS.ReadableStream]
расширяет Readable

Использование в Deno

import { TestsStream } from "node:test";

При успешном вызове run() возвращает новый объект TestsStream, передающий поток событий, описывающих выполнение тестов.

Порядок генерации некоторых событий гарантированно соответствует порядку определения тестов, тогда как остальные события генерируются в порядке выполнения тестов.

Методы

addListener(
event: "test:coverage",
listener: (data: TestCoverage) => void,
): this
addListener(
event: "test:complete",
listener: (data: TestComplete) => void,
): this
addListener(
event: "test:dequeue",
listener: (data: TestDequeue) => void,
): this
addListener(
event: "test:diagnostic",
listener: (data: DiagnosticData) => void,
): this
addListener(
event: "test:enqueue",
listener: (data: TestEnqueue) => void,
): this
addListener(
event: "test:fail",
listener: (data: TestFail) => void,
): this
addListener(
event: "test:pass",
listener: (data: TestPass) => void,
): this
addListener(
event: "test:plan",
listener: (data: TestPlan) => void,
): this
addListener(
event: "test:start",
listener: (data: TestStart) => void,
): this
addListener(
event: "test:stderr",
listener: (data: TestStderr) => void,
): this
addListener(
event: "test:stdout",
listener: (data: TestStdout) => void,
): this
addListener(
event: "test:summary",
listener: (data: TestSummary) => void,
): this
addListener(
event: "test:watch:drained",
listener: () => void,
): this
addListener(
event: string,
listener: (...args: any[]) => void,
): this
emit(
event: "test:coverage",
data: TestCoverage,
): boolean
emit(
event: "test:complete",
data: TestComplete,
): boolean
emit(
event: "test:dequeue",
data: TestDequeue,
): boolean
emit(
event: "test:diagnostic",
data: DiagnosticData,
): boolean
emit(
event: "test:enqueue",
data: TestEnqueue,
): boolean
emit(
event: "test:fail",
data: TestFail,
): boolean
emit(
event: "test:pass",
data: TestPass,
): boolean
emit(
event: "test:plan",
data: TestPlan,
): boolean
emit(
event: "test:start",
data: TestStart,
): boolean
emit(
event: "test:stderr",
data: TestStderr,
): boolean
emit(
event: "test:stdout",
data: TestStdout,
): boolean
emit(
event: "test:summary",
data: TestSummary,
): boolean
emit(event: "test:watch:drained"): boolean
emit(
event: string | symbol,
...args: any[],
): boolean
on(
event: "test:coverage",
listener: (data: TestCoverage) => void,
): this
on(
event: "test:complete",
listener: (data: TestComplete) => void,
): this
on(
event: "test:dequeue",
listener: (data: TestDequeue) => void,
): this
on(
event: "test:diagnostic",
listener: (data: DiagnosticData) => void,
): this
on(
event: "test:enqueue",
listener: (data: TestEnqueue) => void,
): this
on(
event: "test:fail",
listener: (data: TestFail) => void,
): this
on(
event: "test:pass",
listener: (data: TestPass) => void,
): this
on(
event: "test:plan",
listener: (data: TestPlan) => void,
): this
on(
event: "test:start",
listener: (data: TestStart) => void,
): this
on(
event: "test:stderr",
listener: (data: TestStderr) => void,
): this
on(
event: "test:stdout",
listener: (data: TestStdout) => void,
): this
on(
event: "test:summary",
listener: (data: TestSummary) => void,
): this
on(
event: "test:watch:drained",
listener: () => void,
): this
on(
event: string,
listener: (...args: any[]) => void,
): this
once(
event: "test:coverage",
listener: (data: TestCoverage) => void,
): this
once(
event: "test:complete",
listener: (data: TestComplete) => void,
): this
once(
event: "test:dequeue",
listener: (data: TestDequeue) => void,
): this
once(
event: "test:diagnostic",
listener: (data: DiagnosticData) => void,
): this
once(
event: "test:enqueue",
listener: (data: TestEnqueue) => void,
): this
once(
event: "test:fail",
listener: (data: TestFail) => void,
): this
once(
event: "test:pass",
listener: (data: TestPass) => void,
): this
once(
event: "test:plan",
listener: (data: TestPlan) => void,
): this
once(
event: "test:start",
listener: (data: TestStart) => void,
): this
once(
event: "test:stderr",
listener: (data: TestStderr) => void,
): this
once(
event: "test:stdout",
listener: (data: TestStdout) => void,
): this
once(
event: "test:summary",
listener: (data: TestSummary) => void,
): this
once(
event: "test:watch:drained",
listener: () => void,
): this
once(
event: string,
listener: (...args: any[]) => void,
): this
prependListener(
event: "test:coverage",
listener: (data: TestCoverage) => void,
): this
prependListener(
event: "test:complete",
listener: (data: TestComplete) => void,
): this
prependListener(
event: "test:dequeue",
listener: (data: TestDequeue) => void,
): this
prependListener(
event: "test:diagnostic",
listener: (data: DiagnosticData) => void,
): this
prependListener(
event: "test:enqueue",
listener: (data: TestEnqueue) => void,
): this
prependListener(
event: "test:fail",
listener: (data: TestFail) => void,
): this
prependListener(
event: "test:pass",
listener: (data: TestPass) => void,
): this
prependListener(
event: "test:plan",
listener: (data: TestPlan) => void,
): this
prependListener(
event: "test:start",
listener: (data: TestStart) => void,
): this
prependListener(
event: "test:stderr",
listener: (data: TestStderr) => void,
): this
prependListener(
event: "test:stdout",
listener: (data: TestStdout) => void,
): this
prependListener(
event: "test:summary",
listener: (data: TestSummary) => void,
): this
prependListener(
event: "test:watch:drained",
listener: () => void,
): this
prependListener(
event: string,
listener: (...args: any[]) => void,
): this
prependOnceListener(
event: "test:coverage",
listener: (data: TestCoverage) => void,
): this
prependOnceListener(
event: "test:complete",
listener: (data: TestComplete) => void,
): this
prependOnceListener(
event: "test:dequeue",
listener: (data: TestDequeue) => void,
): this
prependOnceListener(
event: "test:diagnostic",
listener: (data: DiagnosticData) => void,
): this
prependOnceListener(
event: "test:enqueue",
listener: (data: TestEnqueue) => void,
): this
prependOnceListener(
event: "test:fail",
listener: (data: TestFail) => void,
): this
prependOnceListener(
event: "test:pass",
listener: (data: TestPass) => void,
): this
prependOnceListener(
event: "test:plan",
listener: (data: TestPlan) => void,
): this
prependOnceListener(
event: "test:start",
listener: (data: TestStart) => void,
): this
prependOnceListener(
event: "test:stderr",
listener: (data: TestStderr) => void,
): this
prependOnceListener(
event: "test:stdout",
listener: (data: TestStdout) => void,
): this
prependOnceListener(
event: "test:summary",
listener: (data: TestSummary) => void,
): this
prependOnceListener(
event: "test:watch:drained",
listener: () => void,
): this
prependOnceListener(
event: string,
listener: (...args: any[]) => void,
): this

функция after

Использование в Deno

import { after } from "node:test";
after(
fn?: HookFn,
options?: HookOptions,
): void

Эта функция создаёт хук, который выполняется после завершения набора тестов.

describe('tests', async () => {
  after(() => console.log('finished running tests'));
  it('is a subtest', () => {
    assert.ok('some relevant assertion here');
  });
});

Параметры

fn: HookFn
необязательный

Функция хука. Если хук использует обратные вызовы, функция обратного вызова передаётся вторым аргументом.

options: HookOptions
необязательный

Параметры конфигурации хука.

Тип возвращаемого значения

void

функция afterEach

Использование в Deno

import { afterEach } from "node:test";
afterEach(
fn?: HookFn,
options?: HookOptions,
): void

Эта функция создаёт хук, который выполняется после каждого теста в текущем наборе. Хук afterEach() выполняется даже в случае сбоя теста.

describe('tests', async () => {
  afterEach(() => console.log('finished running a test'));
  it('is a subtest', () => {
    assert.ok('some relevant assertion here');
  });
});

Параметры

fn: HookFn
необязательный

Функция хука. Если хук использует обратные вызовы, функция обратного вызова передаётся вторым аргументом.

options: HookOptions
необязательный

Параметры конфигурации хука.

Тип возвращаемого значения

void

функция assert.register

Использование в Deno

import { assert } from "node:test";
register(
name: string,
fn: (
this: TestContext,
...args: any[],
) => void
,
): void

Определяет новую функцию проверки с указанными именем и функцией. Если функция проверки с таким именем уже существует, она заменяется.

Параметры

name: string
fn: (
this: TestContext,
...args: any[],
) => void

Тип возвращаемого значения

void

функция before

Использование в Deno

import { before } from "node:test";
before(
fn?: HookFn,
options?: HookOptions,
): void

Эта функция создает хук, который выполняется перед запуском набора тестов.

describe('tests', async () => {
  before(() => console.log('about to run some test'));
  it('is a subtest', () => {
    assert.ok('some relevant assertion here');
  });
});

Параметры

fn: HookFn
необязательный

Функция хука. Если хук использует обратные вызовы, функция обратного вызова передается в качестве второго аргумента.

options: HookOptions
необязательный

Параметры конфигурации хука.

Тип возвращаемого значения

void

функция beforeEach

Использование в Deno

import { beforeEach } from "node:test";
beforeEach(
fn?: HookFn,
options?: HookOptions,
): void

Эта функция создает хук, который выполняется перед каждым тестом в текущем наборе тестов.

describe('tests', async () => {
  beforeEach(() => console.log('about to run a test'));
  it('is a subtest', () => {
    assert.ok('some relevant assertion here');
  });
});

Параметры

fn: HookFn
необязательный

Функция хука. Если хук использует обратные вызовы, функция обратного вызова передается в качестве второго аргумента.

options: HookOptions
необязательный

Параметры конфигурации хука.

Тип возвращаемого значения

void

функция default

Использование в Deno

import mod from "node:test";

Перегрузка 1

default(
name?: string,
fn?: TestFn,
): Promise<void>

Функция test() — это значение, импортированное из модуля test. Каждый вызов этой функции приводит к передаче сведений о тесте в TestsStream.

Объект TestContext, переданный аргументу fn, можно использовать для выполнения действий, связанных с текущим тестом. Например, можно пропустить тест, добавить дополнительные диагностические сведения или создать вложенные тесты.

test() возвращает Promise, которое выполняется после завершения теста. Если test() вызывается внутри набора тестов, оно выполняется немедленно. Для тестов верхнего уровня возвращаемое значение обычно можно игнорировать. Однако возвращаемое значение вложенных тестов следует использовать, чтобы родительский тест не завершился раньше и не отменил вложенный тест, как показано в следующем примере.

test('top level test', async (t) => {
  // The setTimeout() in the following subtest would cause it to outlive its
  // parent test if 'await' is removed on the next line. Once the parent test
  // completes, it will cancel any outstanding subtests.
  await t.test('longer running subtest', async (t) => {
    return new Promise((resolve, reject) => {
      setTimeout(resolve, 1000);
    });
  });
});

Параметр timeout можно использовать, чтобы завершить тест с ошибкой, если для его выполнения требуется больше timeout миллисекунд. Однако это ненадежный способ отмены тестов, поскольку выполняющийся тест может заблокировать поток приложения и тем самым помешать запланированной отмене.

Параметры

name: string
необязательный

Имя теста, отображаемое при выводе результатов тестирования. По умолчанию используется свойство name объекта fn или '<anonymous>', если у fn нет имени.

fn: TestFn
необязательный

Проверяемая функция. Первый аргумент этой функции — объект TestContext. Если тест использует обратные вызовы, функция обратного вызова передается в качестве второго аргумента.

Тип возвращаемого значения

Promise<void>

Выполняется с результатом undefined после завершения теста или немедленно, если тест выполняется внутри набора тестов.

Перегрузка 2

default(
name?: string,
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 3

default(
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 4

default(fn?: TestFn): Promise<void>

Параметры

fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

пространство имен default

Функции

default.after

Эта функция создает хук, который выполняется после запуска набора тестов.

default.afterEach

Эта функция создает хук, который выполняется после каждого теста в текущем наборе тестов. Хук afterEach() выполняется даже в случае сбоя теста.

default.before

Эта функция создает хук, который выполняется перед запуском набора тестов.

default.beforeEach

Эта функция создает хук, который выполняется перед каждым тестом в текущем наборе тестов.

default.describe

Псевдоним для suite.

default.it

Псевдоним для test.

default.only

Сокращенная запись для пометки теста как only. Это эквивалентно вызову test с параметром options.only, установленным в true.

default.run

Примечание: shard используется для горизонтального распараллеливания запуска тестов между компьютерами или процессами и идеально подходит для крупномасштабного выполнения в различных средах. Этот режим несовместим с режимом watch, предназначенным для быстрой итерации кода с автоматическим повторным запуском тестов при изменении файлов.

default.skip

Сокращенная запись для пропуска теста. Это эквивалентно вызову test с параметром options.skip, установленным в true.

default.suite

Функция suite() импортируется из модуля node:test.

default.todo

Сокращенная запись для пометки теста как TODO. Это эквивалентно вызову test с параметром options.todo, установленным в true.

Пространства имен

default.assert

Объект, методы которого используются для настройки доступных проверок в объектах TestContext текущего процесса. По умолчанию доступны методы из node:assert и функции для тестирования снимков.

default.snapshot
Документация отсутствует

Переменные

default.mock
Документация отсутствует

функция default.after

Использование в Deno

import mod from "node:test";
after(
fn?: HookFn,
options?: HookOptions,
): void

Эта функция создает хук, который выполняется после запуска набора тестов.

describe('tests', async () => {
  after(() => console.log('finished running tests'));
  it('is a subtest', () => {
    assert.ok('some relevant assertion here');
  });
});

Параметры

fn: HookFn
необязательный

Функция хука. Если хук использует обратные вызовы, функция обратного вызова передается в качестве второго аргумента.

options: HookOptions
необязательный

Параметры конфигурации хука.

Тип возвращаемого значения

void

функция default.afterEach

Использование в Deno

import mod from "node:test";
afterEach(
fn?: HookFn,
options?: HookOptions,
): void

Эта функция создает хук, который выполняется после каждого теста в текущем наборе тестов. Хук afterEach() выполняется даже в случае сбоя теста.

describe('tests', async () => {
  afterEach(() => console.log('finished running a test'));
  it('is a subtest', () => {
    assert.ok('some relevant assertion here');
  });
});

Параметры

fn: HookFn
необязательный

Функция хука. Если хук использует обратные вызовы, функция обратного вызова передается в качестве второго аргумента.

options: HookOptions
необязательный

Параметры конфигурации хука.

Тип возвращаемого значения

void

функция default.assert.register

Использование в Deno

import mod from "node:test";
register(
name: string,
fn: (
this: TestContext,
...args: any[],
) => void
,
): void

Определяет новую функцию проверки с указанными именем и функцией. Если функция проверки с таким именем уже существует, она будет перезаписана.

Параметры

name: string
fn: (
this: TestContext,
...args: any[],
) => void

Тип возвращаемого значения

void

функция default.before

Использование в Deno

import mod from "node:test";
before(
fn?: HookFn,
options?: HookOptions,
): void

Эта функция создает хук, который выполняется перед запуском набора тестов.

describe('tests', async () => {
  before(() => console.log('about to run some test'));
  it('is a subtest', () => {
    assert.ok('some relevant assertion here');
  });
});

Параметры

fn: HookFn
необязательный

Функция хука. Если хук использует обратные вызовы, функция обратного вызова передается в качестве второго аргумента.

options: HookOptions
необязательный

Параметры конфигурации хука.

Тип возвращаемого значения

void

функция default.beforeEach

Использование в Deno

import mod from "node:test";
beforeEach(
fn?: HookFn,
options?: HookOptions,
): void

Эта функция создает хук, который выполняется перед каждым тестом в текущем наборе.

describe('tests', async () => {
  beforeEach(() => console.log('about to run a test'));
  it('is a subtest', () => {
    assert.ok('some relevant assertion here');
  });
});

Параметры

fn: HookFn
необязательный

Функция хука. Если хук использует обратные вызовы, функция обратного вызова передается в качестве второго аргумента.

options: HookOptions
необязательный

Параметры конфигурации хука.

Тип возвращаемого значения

void

функция default.describe

Использование в Deno

import mod from "node:test";

Перегрузка 1

describe(
name?: string,
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Псевдоним для suite.

Функция describe() импортируется из модуля node:test.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 2

describe(
name?: string,
fn?: SuiteFn,
): Promise<void>

Параметры

name: string
необязательный
fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 3

describe(
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 4

describe(fn?: SuiteFn): Promise<void>

Параметры

fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

пространство имен default.describe

Функции

default.describe.only

Краткая запись для пометки набора как only. Это эквивалентно вызову describe с параметром options.only, установленным в true.

default.describe.skip

Краткая запись для пропуска набора. Это эквивалентно вызову describe с параметром options.skip, установленным в true.

default.describe.todo

Краткая запись для пометки набора как TODO. Это эквивалентно вызову describe с параметром options.todo, установленным в true.


функция default.describe.only

Использование в Deno

import mod from "node:test";

Перегрузка 1

only(
name?: string,
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Краткая запись для пометки набора как only. Это эквивалентно вызову describe с параметром options.only, установленным в true.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 2

only(
name?: string,
fn?: SuiteFn,
): Promise<void>

Параметры

name: string
необязательный
fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 3

only(
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 4

only(fn?: SuiteFn): Promise<void>

Параметры

fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

функция default.describe.skip

Использование в Deno

import mod from "node:test";

Перегрузка 1

skip(
name?: string,
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Краткая запись для пропуска набора. Это эквивалентно вызову describe с параметром options.skip, установленным в true.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 2

skip(
name?: string,
fn?: SuiteFn,
): Promise<void>

Параметры

name: string
необязательный
fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 3

skip(
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 4

skip(fn?: SuiteFn): Promise<void>

Параметры

fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

функция default.describe.todo

Использование в Deno

import mod from "node:test";

Перегрузка 1

todo(
name?: string,
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Краткая запись для пометки набора как TODO. Это эквивалентно вызову describe с параметром options.todo, установленным в true.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 2

todo(
name?: string,
fn?: SuiteFn,
): Promise<void>

Параметры

name: string
необязательный
fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 3

todo(
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 4

todo(fn?: SuiteFn): Promise<void>

Параметры

fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

функция default.it

Использование в Deno

import mod from "node:test";

Перегрузка 1

it(
name?: string,
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Псевдоним для test.

Функция it() импортируется из модуля node:test.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: TestFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 2

it(
name?: string,
fn?: TestFn,
): Promise<void>

Параметры

name: string
необязательный
fn: TestFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 3

it(
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: TestFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 4

it(fn?: TestFn): Promise<void>

Параметры

fn: TestFn
необязательный

Возвращаемый тип

Promise<void>

пространство имён default.it

Функции

default.it.only

Краткая форма для пометки теста как only. Это то же самое, что вызвать it, установив options.only в true.

default.it.skip

Краткая форма для пропуска теста. Это то же самое, что вызвать it, установив options.skip в true.

default.it.todo

Краткая форма для пометки теста как TODO. Это то же самое, что вызвать it, установив options.todo в true.


функция default.it.only

Использование в Deno

import mod from "node:test";

Перегрузка 1

only(
name?: string,
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Краткая форма для пометки теста как only. Это то же самое, что вызвать it, установив options.only в true.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: TestFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 2

only(
name?: string,
fn?: TestFn,
): Promise<void>

Параметры

name: string
необязательный
fn: TestFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 3

only(
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: TestFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 4

only(fn?: TestFn): Promise<void>

Параметры

fn: TestFn
необязательный

Возвращаемый тип

Promise<void>

функция default.it.skip

Использование в Deno

import mod from "node:test";

Перегрузка 1

skip(
name?: string,
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Краткая форма для пропуска теста. Это то же самое, что вызвать it, установив options.skip в true.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: TestFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 2

skip(
name?: string,
fn?: TestFn,
): Promise<void>

Параметры

name: string
необязательный
fn: TestFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 3

skip(
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: TestFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 4

skip(fn?: TestFn): Promise<void>

Параметры

fn: TestFn
необязательный

Возвращаемый тип

Promise<void>

функция default.it.todo

Использование в Deno

import mod from "node:test";

Перегрузка 1

todo(
name?: string,
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Краткая форма для пометки теста как TODO. Это то же самое, что вызвать it, установив options.todo в true.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: TestFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 2

todo(
name?: string,
fn?: TestFn,
): Promise<void>

Параметры

name: string
необязательный
fn: TestFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 3

todo(
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: TestFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 4

todo(fn?: TestFn): Promise<void>

Параметры

fn: TestFn
необязательный

Возвращаемый тип

Promise<void>

функция default.only

Использование в Deno

import mod from "node:test";

Перегрузка 1

only(
name?: string,
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Краткая форма для пометки теста как only. Это то же самое, что вызвать test, установив options.only в true.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: TestFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 2

only(
name?: string,
fn?: TestFn,
): Promise<void>

Параметры

name: string
необязательный
fn: TestFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 3

only(
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: TestFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 4

only(fn?: TestFn): Promise<void>

Параметры

fn: TestFn
необязательный

Возвращаемый тип

Promise<void>

функция default.run

Использование в Deno

import mod from "node:test";
run(options?: RunOptions): TestsStream

Примечание: shard используется для горизонтального распараллеливания запуска тестов на нескольких машинах или процессах, что идеально подходит для масштабного выполнения в различных средах. Этот режим несовместим с режимом watch, предназначенным для быстрой итеративной разработки кода: тесты автоматически запускаются повторно при изменении файлов.

import { tap } from 'node:test/reporters';
import { run } from 'node:test';
import process from 'node:process';
import path from 'node:path';

run({ files: [path.resolve('./tests/test.js')] })
  .compose(tap)
  .pipe(process.stdout);

Параметры

options: RunOptions
необязательный

Параметры конфигурации для запуска тестов.

Возвращаемый тип

TestsStream

функция default.skip

Использование в Deno

import mod from "node:test";

Перегрузка 1

skip(
name?: string,
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Сокращённая запись для пропуска теста. Эквивалентно вызову test с параметром options.skip, установленным в true.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: TestFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 2

skip(
name?: string,
fn?: TestFn,
): Promise<void>

Параметры

name: string
необязательный
fn: TestFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 3

skip(
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: TestFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 4

skip(fn?: TestFn): Promise<void>

Параметры

fn: TestFn
необязательный

Возвращаемый тип

Promise<void>

функция default.snapshot.setDefaultSnapshotSerializers

Использование в Deno

import mod from "node:test";
setDefaultSnapshotSerializers(serializers: ReadonlyArray<(value: any) => any>): void

Эта функция используется для настройки механизма сериализации по умолчанию, применяемого средством запуска тестов.

По умолчанию средство запуска тестов выполняет сериализацию, вызывая JSON.stringify(value, null, 2) для переданного значения. JSON.stringify() имеет ограничения в отношении циклических структур и поддерживаемых типов данных. Если требуется более надёжный механизм сериализации, с помощью этой функции можно указать список пользовательских сериализаторов.

Сериализаторы вызываются по очереди; результат предыдущего сериализатора передаётся следующему в качестве входных данных. Итоговый результат должен быть строкой.

Параметры

serializers: ReadonlyArray<(value: any) => any>

Массив синхронных функций, используемых в качестве сериализаторов по умолчанию для тестов снимков.

Возвращаемый тип

void

функция default.snapshot.setResolveSnapshotPath

Использование в Deno

import mod from "node:test";
setResolveSnapshotPath(fn: (path: string | undefined) => string): void

Эта функция задаёт пользовательский обработчик для определения расположения файла снимка, используемого при тестировании снимков. По умолчанию имя файла снимка совпадает с именем файла точки входа, к которому добавлено .snapshot.

Параметры

fn: (path: string | undefined) => string

Функция для определения расположения файла снимка. Единственный аргумент функции — путь к файлу теста. Если тест не связан с файлом (например, в REPL), входное значение равно undefined. fn() должна возвращать строку с указанием расположения файла снимка.

Возвращаемый тип

void

функция default.suite

Использование в Deno

import mod from "node:test";

Перегрузка 1

suite(
name?: string,
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Функция suite() импортируется из модуля node:test.

Параметры

name: string
необязательный

Имя набора, отображаемое при выводе результатов тестирования. По умолчанию используется свойство name объекта fn или '<anonymous>', если у fn нет имени.

options: TestOptions
необязательный

Параметры конфигурации набора. Поддерживаются те же параметры, что и для test.

fn: SuiteFn
необязательный

Функция набора, объявляющая вложенные тесты и наборы. Первый аргумент этой функции — объект SuiteContext.

Возвращаемый тип

Promise<void>

Немедленно выполняется с результатом undefined.

Перегрузка 2

suite(
name?: string,
fn?: SuiteFn,
): Promise<void>

Параметры

name: string
необязательный
fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 3

suite(
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 4

suite(fn?: SuiteFn): Promise<void>

Параметры

fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

пространство имён default.suite

Функции

default.suite.only

Сокращённая запись для пометки набора как only. Эквивалентно вызову suite с параметром options.only, установленным в true.

default.suite.skip

Сокращённая запись для пропуска набора. Эквивалентно вызову suite с параметром options.skip, установленным в true.

default.suite.todo

Сокращённая запись для пометки набора как TODO. Эквивалентно вызову suite с параметром options.todo, установленным в true.


функция default.suite.only

Использование в Deno

import mod from "node:test";

Перегрузка 1

only(
name?: string,
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Сокращённая запись для пометки набора как only. Эквивалентно вызову suite с параметром options.only, установленным в true.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 2

only(
name?: string,
fn?: SuiteFn,
): Promise<void>

Параметры

name: string
необязательный
fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 3

only(
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 4

only(fn?: SuiteFn): Promise<void>

Параметры

fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

функция default.suite.skip

Использование в Deno

import mod from "node:test";

Перегрузка 1

skip(
name?: string,
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Краткая форма для пропуска набора тестов. Это то же самое, что вызвать suite со значением options.skip, установленным в true.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 2

skip(
name?: string,
fn?: SuiteFn,
): Promise<void>

Параметры

name: string
необязательный
fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 3

skip(
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 4

skip(fn?: SuiteFn): Promise<void>

Параметры

fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

функция default.suite.todo

Использование в Deno

import mod from "node:test";

Перегрузка 1

todo(
name?: string,
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Краткая форма для пометки набора тестов как TODO. Это то же самое, что вызвать suite со значением options.todo, установленным в true.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 2

todo(
name?: string,
fn?: SuiteFn,
): Promise<void>

Параметры

name: string
необязательный
fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 3

todo(
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 4

todo(fn?: SuiteFn): Promise<void>

Параметры

fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

функция default.todo

Использование в Deno

import mod from "node:test";

Перегрузка 1

todo(
name?: string,
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Краткая форма для пометки теста как TODO. Это то же самое, что вызвать test со значением options.todo, установленным в true.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: TestFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 2

todo(
name?: string,
fn?: TestFn,
): Promise<void>

Параметры

name: string
необязательный
fn: TestFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 3

todo(
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: TestFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 4

todo(fn?: TestFn): Promise<void>

Параметры

fn: TestFn
необязательный

Возвращаемый тип

Promise<void>

функция describe

Использование в Deno

import { describe } from "node:test";

Перегрузка 1

describe(
name?: string,
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Псевдоним для suite.

Функция describe() импортируется из модуля node:test.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 2

describe(
name?: string,
fn?: SuiteFn,
): Promise<void>

Параметры

name: string
необязательный
fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 3

describe(
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 4

describe(fn?: SuiteFn): Promise<void>

Параметры

fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

пространство имён describe

Функции

describe.only

Краткая форма для пометки набора тестов как only. Это то же самое, что вызвать describe со значением options.only, установленным в true.

describe.skip

Краткая форма для пропуска набора тестов. Это то же самое, что вызвать describe со значением options.skip, установленным в true.

describe.todo

Краткая форма для пометки набора тестов как TODO. Это то же самое, что вызвать describe со значением options.todo, установленным в true.


функция describe.only

Использование в Deno

import { describe } from "node:test";

Перегрузка 1

only(
name?: string,
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Краткая форма для пометки набора тестов как only. Это то же самое, что вызвать describe со значением options.only, установленным в true.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 2

only(
name?: string,
fn?: SuiteFn,
): Promise<void>

Параметры

name: string
необязательный
fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 3

only(
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 4

only(fn?: SuiteFn): Promise<void>

Параметры

fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

функция describe.skip

Использование в Deno

import { describe } from "node:test";

Перегрузка 1

skip(
name?: string,
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Сокращённая форма для пропуска набора тестов. Это то же самое, что вызвать describe, установив options.skip в значение true.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 2

skip(
name?: string,
fn?: SuiteFn,
): Promise<void>

Параметры

name: string
необязательный
fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 3

skip(
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 4

skip(fn?: SuiteFn): Promise<void>

Параметры

fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

функция describe.todo

Использование в Deno

import { describe } from "node:test";

Перегрузка 1

todo(
name?: string,
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Сокращённая форма для пометки набора тестов как TODO. Это то же самое, что вызвать describe, установив options.todo в значение true.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 2

todo(
name?: string,
fn?: SuiteFn,
): Promise<void>

Параметры

name: string
необязательный
fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 3

todo(
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 4

todo(fn?: SuiteFn): Promise<void>

Параметры

fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

функция it

Использование в Deno

import { it } from "node:test";

Перегрузка 1

it(
name?: string,
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Псевдоним для test.

Функция it() импортируется из модуля node:test.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 2

it(
name?: string,
fn?: TestFn,
): Promise<void>

Параметры

name: string
необязательный
fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 3

it(
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 4

it(fn?: TestFn): Promise<void>

Параметры

fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

пространство имён it

Функции

it.only

Сокращённая форма для пометки теста как only. Это то же самое, что вызвать it, установив options.only в значение true.

it.skip

Сокращённая форма для пропуска теста. Это то же самое, что вызвать it, установив options.skip в значение true.

it.todo

Сокращённая форма для пометки теста как TODO. Это то же самое, что вызвать it, установив options.todo в значение true.


функция it.only

Использование в Deno

import { it } from "node:test";

Перегрузка 1

only(
name?: string,
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Сокращённая форма для пометки теста как only. Это то же самое, что вызвать it, установив options.only в значение true.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 2

only(
name?: string,
fn?: TestFn,
): Promise<void>

Параметры

name: string
необязательный
fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 3

only(
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 4

only(fn?: TestFn): Promise<void>

Параметры

fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

функция it.skip

Использование в Deno

import { it } from "node:test";

Перегрузка 1

skip(
name?: string,
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Сокращённая форма для пропуска теста. Это то же самое, что вызвать it, установив options.skip в значение true.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 2

skip(
name?: string,
fn?: TestFn,
): Promise<void>

Параметры

name: string
необязательный
fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 3

skip(
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 4

skip(fn?: TestFn): Promise<void>

Параметры

fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

функция it.todo

Использование в Deno

import { it } from "node:test";

Перегрузка 1

todo(
name?: string,
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Сокращённая запись для пометки теста как TODO. Это эквивалентно вызову it со значением true для параметра options.todo.

Параметры

name: string
необязательно
options: TestOptions
необязательно
fn: TestFn
необязательно

Возвращаемый тип

Promise<void>

Перегрузка 2

todo(
name?: string,
fn?: TestFn,
): Promise<void>

Параметры

name: string
необязательно
fn: TestFn
необязательно

Возвращаемый тип

Promise<void>

Перегрузка 3

todo(
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Параметры

options: TestOptions
необязательно
fn: TestFn
необязательно

Возвращаемый тип

Promise<void>

Перегрузка 4

todo(fn?: TestFn): Promise<void>

Параметры

fn: TestFn
необязательно

Возвращаемый тип

Promise<void>

функция only

Использование в Deno

import { only } from "node:test";

Перегрузка 1

only(
name?: string,
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Сокращённая запись для пометки теста как only. Это эквивалентно вызову test со значением true для параметра options.only.

Параметры

name: string
необязательно
options: TestOptions
необязательно
fn: TestFn
необязательно

Возвращаемый тип

Promise<void>

Перегрузка 2

only(
name?: string,
fn?: TestFn,
): Promise<void>

Параметры

name: string
необязательно
fn: TestFn
необязательно

Возвращаемый тип

Promise<void>

Перегрузка 3

only(
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Параметры

options: TestOptions
необязательно
fn: TestFn
необязательно

Возвращаемый тип

Promise<void>

Перегрузка 4

only(fn?: TestFn): Promise<void>

Параметры

fn: TestFn
необязательно

Возвращаемый тип

Promise<void>

функция run

Использование в Deno

import { run } from "node:test";
run(options?: RunOptions): TestsStream

Примечание: shard используется для горизонтального распараллеливания запуска тестов на нескольких машинах или процессах и идеально подходит для масштабного выполнения в различных средах. Этот режим несовместим с watch, предназначенным для быстрой итеративной разработки кода с автоматическим повторным запуском тестов при изменении файлов.

import { tap } from 'node:test/reporters';
import { run } from 'node:test';
import process from 'node:process';
import path from 'node:path';

run({ files: [path.resolve('./tests/test.js')] })
  .compose(tap)
  .pipe(process.stdout);

Параметры

options: RunOptions
необязательно

Параметры конфигурации для запуска тестов.

Возвращаемый тип

TestsStream

функция skip

Использование в Deno

import { skip } from "node:test";

Перегрузка 1

skip(
name?: string,
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Сокращённая запись для пропуска теста. Это эквивалентно вызову test со значением true для параметра options.skip.

Параметры

name: string
необязательно
options: TestOptions
необязательно
fn: TestFn
необязательно

Возвращаемый тип

Promise<void>

Перегрузка 2

skip(
name?: string,
fn?: TestFn,
): Promise<void>

Параметры

name: string
необязательно
fn: TestFn
необязательно

Возвращаемый тип

Promise<void>

Перегрузка 3

skip(
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Параметры

options: TestOptions
необязательно
fn: TestFn
необязательно

Возвращаемый тип

Promise<void>

Перегрузка 4

skip(fn?: TestFn): Promise<void>

Параметры

fn: TestFn
необязательно

Возвращаемый тип

Promise<void>

функция snapshot.setDefaultSnapshotSerializers

Использование в Deno

import { snapshot } from "node:test";
setDefaultSnapshotSerializers(serializers: ReadonlyArray<(value: any) => any>): void

Эта функция позволяет настроить используемый по умолчанию механизм сериализации, применяемый средством запуска тестов.

По умолчанию средство запуска тестов выполняет сериализацию, вызывая JSON.stringify(value, null, 2) для переданного значения. JSON.stringify() имеет ограничения, связанные с циклическими структурами и поддерживаемыми типами данных. Если требуется более надёжный механизм сериализации, используйте эту функцию, чтобы задать список пользовательских сериализаторов.

Сериализаторы вызываются по порядку: результат предыдущего передаётся на вход следующему. Итоговый результат должен быть строкой.

Параметры

serializers: ReadonlyArray<(value: any) => any>

Массив синхронных функций, используемых в качестве сериализаторов по умолчанию для тестов снимков.

Возвращаемый тип

void

функция snapshot.setResolveSnapshotPath

Использование в Deno

import { snapshot } from "node:test";
setResolveSnapshotPath(fn: (path: string | undefined) => string): void

Эта функция позволяет задать пользовательский обработчик для определения расположения файла снимка, используемого при тестировании снимков. По умолчанию имя файла снимка совпадает с именем входного файла, к которому добавлено .snapshot.

Параметры

fn: (path: string | undefined) => string

Функция для определения расположения файла снимка. Функция получает путь к файлу теста в качестве единственного аргумента. Если тест не связан с файлом (например, в REPL), входное значение равно undefined. fn() должна возвращать строку, указывающую расположение файла снимка.

Возвращаемый тип

void

функция suite

Использование в Deno

import { suite } from "node:test";

Перегрузка 1

suite(
name?: string,
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Функция suite() импортируется из модуля node:test.

Параметры

name: string
необязательный

Название набора тестов, отображаемое при выводе результатов тестирования. По умолчанию используется свойство name объекта fn или '<anonymous>', если у fn нет имени.

options: TestOptions
необязательный

Параметры конфигурации набора тестов. Поддерживаются те же параметры, что и для test.

fn: SuiteFn
необязательный

Функция набора тестов, объявляющая вложенные тесты и наборы. Первый аргумент этой функции — объект SuiteContext.

Возвращаемый тип

Promise<void>

Немедленно выполняется с результатом undefined.

Перегрузка 2

suite(
name?: string,
fn?: SuiteFn,
): Promise<void>

Параметры

name: string
необязательный
fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 3

suite(
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 4

suite(fn?: SuiteFn): Promise<void>

Параметры

fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

пространство имён suite

Функции

suite.only

Сокращённая запись для пометки набора тестов как only. Это эквивалентно вызову suite со значением true для параметра options.only.

suite.skip

Сокращённая запись для пропуска набора тестов. Это эквивалентно вызову suite со значением true для параметра options.skip.

suite.todo

Сокращённая запись для пометки набора тестов как TODO. Это эквивалентно вызову suite со значением true для параметра options.todo.


функция suite.only

Использование в Deno

import { suite } from "node:test";

Перегрузка 1

only(
name?: string,
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Сокращённая запись для пометки набора тестов как only. Это эквивалентно вызову suite со значением true для параметра options.only.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 2

only(
name?: string,
fn?: SuiteFn,
): Promise<void>

Параметры

name: string
необязательный
fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 3

only(
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 4

only(fn?: SuiteFn): Promise<void>

Параметры

fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

функция suite.skip

Использование в Deno

import { suite } from "node:test";

Перегрузка 1

skip(
name?: string,
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Сокращённая запись для пропуска набора тестов. Это эквивалентно вызову suite со значением true для параметра options.skip.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 2

skip(
name?: string,
fn?: SuiteFn,
): Promise<void>

Параметры

name: string
необязательный
fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 3

skip(
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 4

skip(fn?: SuiteFn): Promise<void>

Параметры

fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

функция suite.todo

Использование в Deno

import { suite } from "node:test";

Перегрузка 1

todo(
name?: string,
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Сокращённая запись для пометки набора тестов как TODO. Это эквивалентно вызову suite со значением true для параметра options.todo.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 2

todo(
name?: string,
fn?: SuiteFn,
): Promise<void>

Параметры

name: string
необязательный
fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 3

todo(
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 4

todo(fn?: SuiteFn): Promise<void>

Параметры

fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

функция test

Использование в Deno

import { test } from "node:test";

Перегрузка 1

test(
name?: string,
fn?: TestFn,
): Promise<void>

Функция test() — это значение, импортированное из модуля test. Каждый вызов этой функции приводит к отправке сведений о тесте в TestsStream.

Объект TestContext, переданный аргументу fn, можно использовать для выполнения действий, связанных с текущим тестом. Например, можно пропустить тест, добавить дополнительные диагностические сведения или создать подзадачи.

Функция test() возвращает Promise, который выполняется после завершения теста. Если test() вызывается внутри набора тестов, он выполняется немедленно. Возвращаемое значение обычно можно не сохранять для тестов верхнего уровня. Однако возвращаемое значение подзадач следует использовать, чтобы родительский тест не завершился раньше и не отменил подзадачу, как показано в следующем примере.

test('top level test', async (t) => {
  // The setTimeout() in the following subtest would cause it to outlive its
  // parent test if 'await' is removed on the next line. Once the parent test
  // completes, it will cancel any outstanding subtests.
  await t.test('longer running subtest', async (t) => {
    return new Promise((resolve, reject) => {
      setTimeout(resolve, 1000);
    });
  });
});

Параметр timeout можно использовать, чтобы завершить тест с ошибкой, если он выполняется дольше timeout миллисекунд. Однако это ненадёжный механизм отмены тестов: выполняющийся тест может заблокировать поток приложения и тем самым помешать запланированной отмене.

Параметры

name: string
необязательный

Имя теста, отображаемое при выводе результатов тестирования. По умолчанию используется свойство name объекта fn или '<anonymous>', если у fn нет имени.

fn: TestFn
необязательный

Проверяемая функция. Первый аргумент этой функции — объект TestContext. Если в тесте используются обратные вызовы, функция обратного вызова передаётся вторым аргументом.

Тип возвращаемого значения

Promise<void>

Выполняется с результатом undefined после завершения теста или немедленно, если тест выполняется внутри набора тестов.

Перегрузка 2

test(
name?: string,
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 3

test(
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 4

test(fn?: TestFn): Promise<void>

Параметры

fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

пространство имён test

Функции

test.after

Эта функция создаёт хук, который выполняется после завершения набора тестов.

test.afterEach

Эта функция создаёт хук, который выполняется после каждого теста в текущем наборе. Хук afterEach() выполняется, даже если тест завершается с ошибкой.

test.before

Эта функция создаёт хук, который выполняется перед запуском набора тестов.

test.beforeEach

Эта функция создаёт хук, который выполняется перед каждым тестом в текущем наборе.

test.describe

Псевдоним для suite.

test.it

Псевдоним для test.

test.only

Сокращённая запись для пометки теста как only. Это то же самое, что вызвать test, установив options.only в значение true.

test.run

Примечание: shard используется для горизонтального распараллеливания запуска тестов на нескольких машинах или процессах и подходит для масштабных запусков в различных средах. Этот режим несовместим с режимом watch, предназначенным для быстрого внесения изменений в код за счёт автоматического повторного запуска тестов при изменении файлов.

test.skip

Сокращённая запись для пропуска теста. Это то же самое, что вызвать test, установив options.skip в значение true.

test.suite

Функция suite() импортируется из модуля node:test.

test.todo

Сокращённая запись для пометки теста как TODO. Это то же самое, что вызвать test, установив options.todo в значение true.

Пространства имён

test.assert

Объект, методы которого используются для настройки доступных проверок объектов TestContext в текущем процессе. Методы из node:assert и функции тестирования снимков доступны по умолчанию.

test.snapshot
Документация недоступна

Переменные

test.mock
Документация недоступна

функция test.after

Использование в Deno

import { test } from "node:test";
after(
fn?: HookFn,
options?: HookOptions,
): void

Эта функция создаёт хук, который выполняется после завершения набора тестов.

describe('tests', async () => {
  after(() => console.log('finished running tests'));
  it('is a subtest', () => {
    assert.ok('some relevant assertion here');
  });
});

Параметры

fn: HookFn
необязательный

Функция хука. Если в хуке используются обратные вызовы, функция обратного вызова передаётся вторым аргументом.

options: HookOptions
необязательный

Параметры конфигурации хука.

Тип возвращаемого значения

void

функция test.afterEach

Использование в Deno

import { test } from "node:test";
afterEach(
fn?: HookFn,
options?: HookOptions,
): void

Эта функция создаёт хук, который выполняется после каждого теста в текущем наборе. Хук afterEach() выполняется, даже если тест завершается с ошибкой.

describe('tests', async () => {
  afterEach(() => console.log('finished running a test'));
  it('is a subtest', () => {
    assert.ok('some relevant assertion here');
  });
});

Параметры

fn: HookFn
необязательный

Функция хука. Если в хуке используются обратные вызовы, функция обратного вызова передаётся вторым аргументом.

options: HookOptions
необязательный

Параметры конфигурации хука.

Тип возвращаемого значения

void

функция test.assert.register

Использование в Deno

import { test } from "node:test";
register(
name: string,
fn: (
this: TestContext,
...args: any[],
) => void
,
): void

Определяет новую функцию проверки с указанными именем и функцией. Если проверка с таким именем уже существует, она перезаписывается.

Параметры

name: string
fn: (
this: TestContext,
...args: any[],
) => void

Тип возвращаемого значения

void

функция test.before

Использование в Deno

import { test } from "node:test";
before(
fn?: HookFn,
options?: HookOptions,
): void

Эта функция создаёт хук, который выполняется перед запуском набора тестов.

describe('tests', async () => {
  before(() => console.log('about to run some test'));
  it('is a subtest', () => {
    assert.ok('some relevant assertion here');
  });
});

Параметры

fn: HookFn
необязательный

Функция хука. Если в хуке используются обратные вызовы, функция обратного вызова передаётся вторым аргументом.

options: HookOptions
необязательный

Параметры конфигурации хука.

Тип возвращаемого значения

void

функция test.beforeEach

Использование в Deno

import { test } from "node:test";
beforeEach(
fn?: HookFn,
options?: HookOptions,
): void

Эта функция создаёт хук, который выполняется перед каждым тестом в текущем наборе.

describe('tests', async () => {
  beforeEach(() => console.log('about to run a test'));
  it('is a subtest', () => {
    assert.ok('some relevant assertion here');
  });
});

Параметры

fn: HookFn
необязательный

Функция хука. Если в хуке используются обратные вызовы, функция обратного вызова передаётся вторым аргументом.

options: HookOptions
необязательный

Параметры конфигурации хука.

Тип возвращаемого значения

void

функция test.describe

Использование в Deno

import { test } from "node:test";

Перегрузка 1

describe(
name?: string,
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Псевдоним для suite.

Функция describe() импортируется из модуля node:test.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 2

describe(
name?: string,
fn?: SuiteFn,
): Promise<void>

Параметры

name: string
необязательный
fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 3

describe(
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 4

describe(fn?: SuiteFn): Promise<void>

Параметры

fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

пространство имён test.describe

Функции

test.describe.only

Краткая запись для пометки набора как only. Это эквивалентно вызову describe с параметром options.only, установленным в true.

test.describe.skip

Краткая запись для пропуска набора. Это эквивалентно вызову describe с параметром options.skip, установленным в true.

test.describe.todo

Краткая запись для пометки набора как TODO. Это эквивалентно вызову describe с параметром options.todo, установленным в true.


функция test.describe.only

Использование в Deno

import { test } from "node:test";

Перегрузка 1

only(
name?: string,
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Краткая запись для пометки набора как only. Это эквивалентно вызову describe с параметром options.only, установленным в true.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 2

only(
name?: string,
fn?: SuiteFn,
): Promise<void>

Параметры

name: string
необязательный
fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 3

only(
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 4

only(fn?: SuiteFn): Promise<void>

Параметры

fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

функция test.describe.skip

Использование в Deno

import { test } from "node:test";

Перегрузка 1

skip(
name?: string,
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Краткая запись для пропуска набора. Это эквивалентно вызову describe с параметром options.skip, установленным в true.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 2

skip(
name?: string,
fn?: SuiteFn,
): Promise<void>

Параметры

name: string
необязательный
fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 3

skip(
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 4

skip(fn?: SuiteFn): Promise<void>

Параметры

fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

функция test.describe.todo

Использование в Deno

import { test } from "node:test";

Перегрузка 1

todo(
name?: string,
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Краткая запись для пометки набора как TODO. Это эквивалентно вызову describe с параметром options.todo, установленным в true.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 2

todo(
name?: string,
fn?: SuiteFn,
): Promise<void>

Параметры

name: string
необязательный
fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 3

todo(
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 4

todo(fn?: SuiteFn): Promise<void>

Параметры

fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

функция test.it

Использование в Deno

import { test } from "node:test";

Перегрузка 1

it(
name?: string,
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Псевдоним для test.

Функция it() импортируется из модуля node:test.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 2

it(
name?: string,
fn?: TestFn,
): Promise<void>

Параметры

name: string
необязательный
fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 3

it(
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 4

it(fn?: TestFn): Promise<void>

Параметры

fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

пространство имён test.it

Функции

test.it.only

Краткая запись для пометки теста как only. Это эквивалентно вызову it с параметром options.only, которому присвоено значение true.

test.it.skip

Краткая запись для пропуска теста. Это эквивалентно вызову it с параметром options.skip, которому присвоено значение true.

test.it.todo

Краткая запись для пометки теста как TODO. Это эквивалентно вызову it с параметром options.todo, которому присвоено значение true.


функция test.it.only

Использование в Deno

import { test } from "node:test";

Перегрузка 1

only(
name?: string,
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Краткая запись для пометки теста как only. Это эквивалентно вызову it с параметром options.only, которому присвоено значение true.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 2

only(
name?: string,
fn?: TestFn,
): Promise<void>

Параметры

name: string
необязательный
fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 3

only(
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 4

only(fn?: TestFn): Promise<void>

Параметры

fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

функция test.it.skip

Использование в Deno

import { test } from "node:test";

Перегрузка 1

skip(
name?: string,
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Краткая запись для пропуска теста. Это эквивалентно вызову it с параметром options.skip, которому присвоено значение true.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 2

skip(
name?: string,
fn?: TestFn,
): Promise<void>

Параметры

name: string
необязательный
fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 3

skip(
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 4

skip(fn?: TestFn): Promise<void>

Параметры

fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

функция test.it.todo

Использование в Deno

import { test } from "node:test";

Перегрузка 1

todo(
name?: string,
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Краткая запись для пометки теста как TODO. Это эквивалентно вызову it с параметром options.todo, которому присвоено значение true.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 2

todo(
name?: string,
fn?: TestFn,
): Promise<void>

Параметры

name: string
необязательный
fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 3

todo(
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 4

todo(fn?: TestFn): Promise<void>

Параметры

fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

функция test.only

Использование в Deno

import { test } from "node:test";

Перегрузка 1

only(
name?: string,
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Краткая запись для пометки теста как only. Это эквивалентно вызову test с параметром options.only, которому присвоено значение true.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 2

only(
name?: string,
fn?: TestFn,
): Promise<void>

Параметры

name: string
необязательный
fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 3

only(
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 4

only(fn?: TestFn): Promise<void>

Параметры

fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

функция test.run

Использование в Deno

import { test } from "node:test";
run(options?: RunOptions): TestsStream

Примечание: shard используется для горизонтального параллельного выполнения тестов на нескольких машинах или процессах и идеально подходит для крупномасштабных запусков в различных средах. Он несовместим с режимом watch, предназначенным для быстрой итерации кода за счёт автоматического повторного запуска тестов при изменении файлов.

import { tap } from 'node:test/reporters';
import { run } from 'node:test';
import process from 'node:process';
import path from 'node:path';

run({ files: [path.resolve('./tests/test.js')] })
  .compose(tap)
  .pipe(process.stdout);

Параметры

options: RunOptions
необязательный

Параметры конфигурации для запуска тестов.

Возвращаемый тип

TestsStream

функция test.skip

Использование в Deno

import { test } from "node:test";

Перегрузка 1

skip(
name?: string,
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Сокращённая запись для пропуска теста. Это эквивалентно вызову test со значением options.skip, установленным в true.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: TestFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 2

skip(
name?: string,
fn?: TestFn,
): Promise<void>

Параметры

name: string
необязательный
fn: TestFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 3

skip(
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: TestFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 4

skip(fn?: TestFn): Promise<void>

Параметры

fn: TestFn
необязательный

Возвращаемый тип

Promise<void>

функция test.snapshot.setDefaultSnapshotSerializers

Использование в Deno

import { test } from "node:test";
setDefaultSnapshotSerializers(serializers: ReadonlyArray<(value: any) => any>): void

Эта функция используется для настройки механизма сериализации по умолчанию, применяемого средством запуска тестов.

По умолчанию средство запуска тестов выполняет сериализацию, вызывая JSON.stringify(value, null, 2) для переданного значения. JSON.stringify() имеет ограничения при работе с циклическими структурами и поддерживаемыми типами данных. Если требуется более надёжный механизм сериализации, следует использовать эту функцию, чтобы указать список пользовательских сериализаторов.

Сериализаторы вызываются по порядку: результат предыдущего сериализатора передаётся в качестве входных данных следующему. Итоговый результат должен быть строкой.

Параметры

serializers: ReadonlyArray<(value: any) => any>

Массив синхронных функций, используемых в качестве сериализаторов по умолчанию для тестов снимков.

Возвращаемый тип

void

функция test.snapshot.setResolveSnapshotPath

Использование в Deno

import { test } from "node:test";
setResolveSnapshotPath(fn: (path: string | undefined) => string): void

Эта функция используется для задания пользовательского обработчика, определяющего расположение файла снимка, применяемого при тестировании снимков. По умолчанию имя файла снимка совпадает с именем файла точки входа, к которому добавлено .snapshot.

Параметры

fn: (path: string | undefined) => string

Функция, используемая для вычисления расположения файла снимка. Единственным аргументом функция получает путь к файлу теста. Если тест не связан с файлом (например, в REPL), входное значение равно undefined. fn() должна возвращать строку, указывающую расположение файла снимка.

Возвращаемый тип

void

функция test.suite

Использование в Deno

import { test } from "node:test";

Перегрузка 1

suite(
name?: string,
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Функция suite() импортируется из модуля node:test.

Параметры

name: string
необязательный

Название набора, отображаемое при выводе результатов тестирования. По умолчанию используется свойство name объекта fn или '<anonymous>', если у fn нет имени.

options: TestOptions
необязательный

Параметры конфигурации набора. Поддерживаются те же параметры, что и для test.

fn: SuiteFn
необязательный

Функция набора, объявляющая вложенные тесты и наборы. Первый аргумент этой функции — объект SuiteContext.

Возвращаемый тип

Promise<void>

Немедленно выполняется с результатом undefined.

Перегрузка 2

suite(
name?: string,
fn?: SuiteFn,
): Promise<void>

Параметры

name: string
необязательный
fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 3

suite(
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 4

suite(fn?: SuiteFn): Promise<void>

Параметры

fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

пространство имён test.suite

Функции

test.suite.only

Сокращённая запись для пометки набора как only. Это эквивалентно вызову suite со значением options.only, установленным в true.

test.suite.skip

Сокращённая запись для пропуска набора. Это эквивалентно вызову suite со значением options.skip, установленным в true.

test.suite.todo

Сокращённая запись для пометки набора как TODO. Это эквивалентно вызову suite со значением options.todo, установленным в true.


функция test.suite.only

Использование в Deno

import { test } from "node:test";

Перегрузка 1

only(
name?: string,
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Сокращённая запись для пометки набора как only. Это эквивалентно вызову suite со значением options.only, установленным в true.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 2

only(
name?: string,
fn?: SuiteFn,
): Promise<void>

Параметры

name: string
необязательный
fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 3

only(
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

Перегрузка 4

only(fn?: SuiteFn): Promise<void>

Параметры

fn: SuiteFn
необязательный

Возвращаемый тип

Promise<void>

функция test.suite.skip

Использование в Deno

import { test } from "node:test";

Перегрузка 1

skip(
name?: string,
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Краткая запись для пропуска набора тестов. Это то же самое, что вызвать suite, установив options.skip в true.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 2

skip(
name?: string,
fn?: SuiteFn,
): Promise<void>

Параметры

name: string
необязательный
fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 3

skip(
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 4

skip(fn?: SuiteFn): Promise<void>

Параметры

fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

функция test.suite.todo

Использование в Deno

import { test } from "node:test";

Перегрузка 1

todo(
name?: string,
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Краткая запись для пометки набора тестов как TODO. Это то же самое, что вызвать suite, установив options.todo в true.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 2

todo(
name?: string,
fn?: SuiteFn,
): Promise<void>

Параметры

name: string
необязательный
fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 3

todo(
options?: TestOptions,
fn?: SuiteFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 4

todo(fn?: SuiteFn): Promise<void>

Параметры

fn: SuiteFn
необязательный

Тип возвращаемого значения

Promise<void>

функция test.todo

Использование в Deno

import { test } from "node:test";

Перегрузка 1

todo(
name?: string,
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Краткая запись для пометки теста как TODO. Это то же самое, что вызвать test, установив options.todo в true.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 2

todo(
name?: string,
fn?: TestFn,
): Promise<void>

Параметры

name: string
необязательный
fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 3

todo(
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 4

todo(fn?: TestFn): Promise<void>

Параметры

fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

функция todo

Использование в Deno

import { todo } from "node:test";

Перегрузка 1

todo(
name?: string,
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Краткая запись для пометки теста как TODO. Это то же самое, что вызвать test, установив options.todo в true.

Параметры

name: string
необязательный
options: TestOptions
необязательный
fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 2

todo(
name?: string,
fn?: TestFn,
): Promise<void>

Параметры

name: string
необязательный
fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 3

todo(
options?: TestOptions,
fn?: TestFn,
): Promise<void>

Параметры

options: TestOptions
необязательный
fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

Перегрузка 4

todo(fn?: TestFn): Promise<void>

Параметры

fn: TestFn
необязательный

Тип возвращаемого значения

Promise<void>

интерфейс AssertSnapshotOptions

Использование в Deno

import { type AssertSnapshotOptions } from "node:test";

Свойства

serializers: ReadonlyArray<(value: any) => any> | undefined
необязательный

Массив синхронных функций, используемых для сериализации value в строку. value передаётся в качестве единственного аргумента первой функции-сериализатору. Возвращаемое значение каждого сериализатора передаётся как входное значение следующему сериализатору. После выполнения всех сериализаторов полученное значение преобразуется в строку.

Если сериализаторы не указаны, используются сериализаторы тестового средства запуска по умолчанию.


интерфейс HookOptions

Использование в Deno

import { type HookOptions } from "node:test";

Параметры конфигурации для хуков.

Свойства

signal: AbortSignal | undefined
необязательный

Позволяет прервать выполняющийся хук.

timeout: number | undefined
необязательный

Количество миллисекунд, по истечении которых выполнение хука завершится ошибкой. Если значение не задано, вложенные тесты наследуют его от родительского теста.


интерфейс MockFunctionCall

Использование в Deno

import { type MockFunctionCall } from "node:test";

Параметры типа

F extends Function
ReturnType = F extends (...args: any) => infer T ? T : F extends new (...args: any) => infer T ? T : unknown
Args = F extends (...args: infer Y) => any ? Y : F extends new (...args: infer Y) => any ? Y : unknown[]

Свойства

arguments: Args

Массив аргументов, переданных имитируемой функции.

error: unknown | undefined

Если имитируемая функция вызвала исключение, это свойство содержит выброшенное значение.

result: ReturnType | undefined

Значение, возвращённое имитируемой функцией.

Если имитируемая функция вызвала исключение, значение будет undefined.

stack: Error

Объект Error, стек которого можно использовать для определения места вызова имитируемой функции.

target: F extends new (...args: any) => any ? F : undefined

Если имитируемая функция является конструктором, это поле содержит создаваемый класс. В противном случае значение будет undefined.

this: unknown

Значение this имитируемой функции.


интерфейс MockFunctionOptions

Использование в Deno

import { type MockFunctionOptions } from "node:test";

Свойства

times: number | undefined
необязательный

Количество раз, в течение которых имитация будет использовать поведение implementation. После того как имитация функции будет вызвана times раз, она автоматически восстановит поведение original. Это значение должно быть целым числом больше нуля.


интерфейс MockMethodOptions

наследует MockFunctionOptions

Использование в Deno

import { type MockMethodOptions } from "node:test";

Свойства

getter: boolean | undefined
необязательный

Если true, object[methodName] рассматривается как геттер. Этот параметр нельзя использовать вместе с параметром setter.

setter: boolean | undefined
необязательный

Если true, object[methodName] рассматривается как сеттер. Этот параметр нельзя использовать вместе с параметром getter.


интерфейс MockModuleOptions

Использование в Deno

import { type MockModuleOptions } from "node:test";

Свойства

cache: boolean | undefined
необязательный

Если значение равно false, каждый вызов require() или import() создает новый модуль-заглушку. Если значение равно true, последующие вызовы будут возвращать ту же заглушку модуля, которая добавляется в кэш CommonJS.

defaultExport: any
необязательный

Значение, используемое в качестве экспорта по умолчанию имитируемого модуля.

Если это значение не задано, заглушки ESM не содержат экспорта по умолчанию. Если заглушка является модулем CommonJS или встроенным модулем, этот параметр используется в качестве значения module.exports. Если это значение не задано, в заглушках CJS и встроенных модулях в качестве значения module.exports используется пустой объект.

namedExports: object | undefined
необязательный

Объект, ключи и значения которого используются для создания именованных экспортов имитируемого модуля.

Если заглушка является модулем CommonJS или встроенным модулем, эти значения копируются в module.exports. Поэтому, если заглушка создана с именованными экспортами и экспортом по умолчанию, не являющимся объектом, при использовании в качестве модуля CJS или встроенного модуля она вызовет исключение.


интерфейс MockTimersOptions

Использование в Deno

import { type MockTimersOptions } from "node:test";

Свойства

apis: Timer[]
now:
number
| Date
| undefined
необязательный

интерфейс RunOptions

Использование в Deno

import { type RunOptions } from "node:test";

Свойства

concurrency:
number
| boolean
| undefined
необязательный

Если задано число, указанное количество тестовых процессов будет выполняться параллельно, причем каждому процессу будет соответствовать один файл тестов. Если true, параллельно будут выполняться os.availableParallelism() - 1 файлов тестов. Если false, за раз будет выполняться только один файл тестов.

files: readonly string[] | undefined
необязательный

Массив со списком файлов для запуска. Если не задан, файлы запускаются в соответствии с моделью выполнения средства запуска тестов.

forceExit: boolean | undefined
необязательный

Настраивает средство запуска тестов так, чтобы процесс завершался после выполнения всех известных тестов, даже если в противном случае цикл событий оставался бы активным.

globPatterns: readonly string[] | undefined
необязательный

Массив шаблонов glob для сопоставления с файлами тестов. Этот параметр нельзя использовать вместе с files. Если он не задан, файлы запускаются в соответствии с моделью выполнения средства запуска тестов.

inspectPort:
number
| (() => number)
| undefined
необязательный

Задает порт инспектора дочернего процесса теста. Это может быть число или функция без аргументов, возвращающая число. Если задано значение null или undefined, каждый процесс получает собственный порт, увеличенный относительно process.debugPort основного процесса. Этот параметр игнорируется, если параметр isolation установлен в 'none', поскольку дочерние процессы не создаются.

isolation:
"process"
| "none"
| undefined
необязательный

Настраивает тип изоляции тестов. Если задано 'process', каждый файл тестов запускается в отдельном дочернем процессе. Если задано 'none', все файлы тестов запускаются в текущем процессе.

only: boolean | undefined
необязательный

Если значение истинно, контекст тестирования будет запускать только тесты, для которых задан параметр only

setup: ((reporter: TestsStream) => void | Promise<void>) | undefined
необязательный

Функция, принимающая экземпляр TestsStream; ее можно использовать для настройки обработчиков до запуска тестов.

execArgv: readonly string[] | undefined
необязательный

Массив флагов CLI, передаваемых исполняемому файлу node при создании подпроцессов. Этот параметр не влияет на работу, если isolation имеет значение 'none'.

argv: readonly string[] | undefined
необязательный

Массив флагов CLI, передаваемых каждому файлу тестов при создании подпроцессов. Этот параметр не влияет на работу, если isolation имеет значение 'none'.

signal: AbortSignal | undefined
необязательный

Позволяет прервать выполняющийся тест.

testNamePatterns:
string
| RegExp
| ReadonlyArray<string | RegExp>
| undefined
необязательный

Если задан, запускаются только тесты, имена которых соответствуют указанному шаблону. Строки интерпретируются как регулярные выражения JavaScript.

testSkipPatterns:
string
| RegExp
| ReadonlyArray<string | RegExp>
| undefined
необязательный

Строка, регулярное выражение или массив регулярных выражений, позволяющие исключить запуск тестов, имена которых соответствуют указанному шаблону. Шаблоны имен тестов интерпретируются как регулярные выражения JavaScript. Для каждого выполняемого теста также выполняются все соответствующие ему хуки теста, например beforeEach().

timeout: number | undefined
необязательный

Количество миллисекунд, по истечении которого выполнение теста завершится с ошибкой. Если значение не задано, вложенные тесты наследуют его от родительского теста.

watch: boolean | undefined
необязательный

Определяет, следует ли запускать тесты в режиме наблюдения.

shard: TestShard | undefined
необязательный

Запуск тестов в определенном сегменте.

coverage: boolean | undefined
необязательный

включает сбор данных о покрытии кода.

coverageExcludeGlobs:
string
| readonly string[]
| undefined
необязательный

Исключает определенные файлы из анализа покрытия кода с помощью шаблона glob, который может соответствовать абсолютным и относительным путям к файлам. Это свойство применяется только в том случае, если coverage установлено в true. Если заданы и coverageExcludeGlobs, и coverageIncludeGlobs, файлы должны соответствовать обоим критериям, чтобы попасть в отчет о покрытии.

coverageIncludeGlobs:
string
| readonly string[]
| undefined
необязательный

Включает определенные файлы в анализ покрытия кода с помощью шаблона glob, который может соответствовать абсолютным и относительным путям к файлам. Это свойство применяется только в том случае, если coverage установлено в true. Если заданы и coverageExcludeGlobs, и coverageIncludeGlobs, файлы должны соответствовать обоим критериям, чтобы попасть в отчет о покрытии.

lineCoverage: number | undefined
необязательный

Требует минимального процента покрытых строк. Если покрытие кода не достигнет указанного порога, процесс завершится с кодом 1.

branchCoverage: number | undefined
необязательный

Требует минимального процента покрытых ветвей. Если покрытие кода не достигнет указанного порога, процесс завершится с кодом 1.

functionCoverage: number | undefined
необязательный

Требует минимального процента покрытых функций. Если покрытие кода не достигнет указанного порога, процесс завершится с кодом 1.


интерфейс TestContextAssert

наследует Pick<assert,
"deepEqual"
| "deepStrictEqual"
| "doesNotMatch"
| "doesNotReject"
| "doesNotThrow"
| "equal"
| "fail"
| "ifError"
| "match"
| "notDeepEqual"
| "notDeepStrictEqual"
| "notEqual"
| "notStrictEqual"
| "ok"
| "partialDeepStrictEqual"
| "rejects"
| "strictEqual"
| "throws"
>

Использование в Deno

import { type TestContextAssert } from "node:test";

Сигнатуры индекса

[name: string]: (...args: any[]) => void

Методы

fileSnapshot(
value: any,
path: string,
options?: AssertSnapshotOptions,
): void

Эта функция сериализует value и записывает его в файл, указанный в path.

test('snapshot test with default serialization', (t) => {
  t.assert.fileSnapshot({ value1: 1, value2: 2 }, './snapshots/snapshot.json');
});

Эта функция отличается от context.assert.snapshot() следующим:

  • Путь к файлу снимка явно задается пользователем.
  • Каждый файл снимка содержит только одно значение снимка.
  • Средство запуска тестов не выполняет дополнительное экранирование.

Эти различия позволяют лучше поддерживать в файлах снимков такие возможности, как подсветка синтаксиса.

snapshot(
value: any,
options?: AssertSnapshotOptions,
): void

Эта функция реализует проверки для тестирования снимков.

test('snapshot test with default serialization', (t) => {
  t.assert.snapshot({ value1: 1, value2: 2 });
});

test('snapshot test with custom serialization', (t) => {
  t.assert.snapshot({ value3: 3, value4: 4 }, {
    serializers: [(value) => JSON.stringify(value)]
  });
});

интерфейс TestContextWaitForOptions

Использование в Deno

import { type TestContextWaitForOptions } from "node:test";

Свойства

interval: number | undefined
необязательный

Количество миллисекунд ожидания после неудачного вызова condition перед повторной попыткой.

timeout: number | undefined
необязательный

Тайм-аут опроса в миллисекундах. Если к его истечению condition не будет выполнено успешно, произойдет ошибка.


интерфейс TestOptions

Использование в Deno

import { type TestOptions } from "node:test";

Свойства

concurrency:
number
| boolean
| undefined
необязательное

Если указано число, то такое количество тестов будет выполняться параллельно. Если значение истинное, параллельно будут выполняться тесты в количестве, равном (число ядер процессора - 1). Для под-тестов параллельно будут выполняться Infinity тестов. Если значение ложное, за раз будет выполняться только один тест. Если значение не указано, под-тесты наследуют его от родительского теста.

only: boolean | undefined
необязательное

Если значение истинное и контекст тестирования настроен на запуск only тестов, этот тест будет запущен. В противном случае тест будет пропущен.

signal: AbortSignal | undefined
необязательное

Позволяет прервать выполняющийся тест.

skip:
boolean
| string
| undefined
необязательное

Если значение истинное, тест пропускается. Если указана строка, она отображается в результатах тестирования как причина пропуска теста.

timeout: number | undefined
необязательное

Количество миллисекунд, по истечении которых тест завершится с ошибкой. Если значение не указано, под-тесты наследуют его от родительского теста.

todo:
boolean
| string
| undefined
необязательное

Если значение истинное, тест помечается как TODO. Если указана строка, она отображается в результатах тестирования как причина, по которой тест TODO.

plan: number | undefined
необязательное

Ожидаемое количество проверок и под-тестов, которые должны быть выполнены в тесте. Если количество выполненных проверок не совпадает с указанным в плане, тест завершится с ошибкой.


интерфейс TestShard

Использование в Deno

import { type TestShard } from "node:test";

Свойства

index: number

Положительное целое число от 1 до total, указывающее индекс запускаемого шарда.

total: number

Положительное целое число, указывающее общее количество шардов, на которые нужно разбить файлы тестов.


пространство имён assert

Использование в Deno

import { assert } from "node:test";

Объект, методы которого используются для настройки доступных проверок в объектах TestContext текущего процесса. По умолчанию доступны методы из node:assert и функции для тестирования снимков.

Эту конфигурацию можно применить ко всем файлам, поместив общий код конфигурации в модуль, предварительно загружаемый с помощью --require или --import.

Функции

assert.register

Определяет новую функцию проверки с указанными именем и функцией. Если проверка с таким именем уже существует, она перезаписывается.


пространство имён default.assert

Использование в Deno

import mod from "node:test";

Объект, методы которого используются для настройки доступных проверок в объектах TestContext текущего процесса. По умолчанию доступны методы из node:assert и функции для тестирования снимков.

Эту конфигурацию можно применить ко всем файлам, поместив общий код конфигурации в модуль, предварительно загружаемый с помощью --require или --import.

Функции

default.assert.register

Определяет новую функцию проверки с указанными именем и функцией. Если проверка с таким именем уже существует, она перезаписывается.


пространство имён default.snapshot

Использование в Deno

import mod from "node:test";

Функции

default.snapshot.setDefaultSnapshotSerializers

Эта функция используется для настройки механизма сериализации по умолчанию, используемого средством запуска тестов.

default.snapshot.setResolveSnapshotPath

Эта функция задаёт пользовательский обработчик для определения расположения файла снимков, используемого при тестировании снимков. По умолчанию имя файла снимков совпадает с именем файла точки входа, к которому добавляется .snapshot.


пространство имён snapshot

Использование в Deno

import { snapshot } from "node:test";

Функции

snapshot.setDefaultSnapshotSerializers

Эта функция используется для настройки механизма сериализации по умолчанию, используемого средством запуска тестов.

snapshot.setResolveSnapshotPath

Эта функция задаёт пользовательский обработчик для определения расположения файла снимков, используемого при тестировании снимков. По умолчанию имя файла снимков совпадает с именем файла точки входа, к которому добавляется .snapshot.


пространство имён test.assert

Использование в Deno

import { test } from "node:test";

Объект, методы которого используются для настройки доступных проверок в объектах TestContext текущего процесса. По умолчанию доступны методы из node:assert и функции для тестирования снимков.

Эту конфигурацию можно применить ко всем файлам, поместив общий код конфигурации в модуль, предварительно загружаемый с помощью --require или --import.

Функции

test.assert.register

Определяет новую функцию проверки с указанными именем и функцией. Если проверка с таким именем уже существует, она перезаписывается.


пространство имён test.snapshot

Использование в Deno

import { test } from "node:test";

Функции

test.snapshot.setDefaultSnapshotSerializers

Эта функция используется для настройки механизма сериализации по умолчанию, используемого средством запуска тестов.

test.snapshot.setResolveSnapshotPath

Эта функция задаёт пользовательский обработчик для определения расположения файла снимков, используемого при тестировании снимков. По умолчанию имя файла снимков совпадает с именем файла точки входа, к которому добавляется .snapshot.


псевдоним типа FunctionPropertyNames

Использование в Deno

import { type FunctionPropertyNames } from "node:test";

Параметры типа

T

Определение

[K in keyof T]: T[K] extends Function ? K : never[keyof T]

псевдоним типа HookFn

Использование в Deno

import { type HookFn } from "node:test";

Функция-хук. Первый аргумент — контекст, в котором вызывается хук. Если хук использует обратные вызовы, функция обратного вызова передаётся вторым аргументом.

Определение

(
c: TestContext | SuiteContext,
done: (result?: any) => void,
) => any

псевдоним типа Mock

Использование в Deno

import { type Mock } from "node:test";

Параметры типа

F extends Function

Определение

F & { mock: MockFunctionContext<F>; }

псевдоним типа NoOpFunction

Использование в Deno

import { type NoOpFunction } from "node:test";

Определение

(...args: any[]) => undefined

псевдоним типа SuiteFn

Использование в Deno

import { type SuiteFn } from "node:test";

Тип функции тестового набора. Аргументом этой функции является объект SuiteContext.

Определение

(s: SuiteContext) => void | Promise<void>

псевдоним типа TestContextHookFn

Использование в Deno

import { type TestContextHookFn } from "node:test";

Функция-хук. Первый аргумент — объект TestContext. Если хук использует обратные вызовы, функция обратного вызова передаётся вторым аргументом.

Определение

(
t: TestContext,
done: (result?: any) => void,
) => any

псевдоним типа TestFn

Использование в Deno

import { type TestFn } from "node:test";

Тип функции, передаваемой в test. Первый аргумент этой функции — объект TestContext. Если тест использует обратные вызовы, функция обратного вызова передаётся вторым аргументом.

Определение

(
t: TestContext,
done: (result?: any) => void,
) => void | Promise<void>

псевдоним типа Timer

Использование в Deno

import { type Timer } from "node:test";

Определение

"setInterval"
| "setTimeout"
| "setImmediate"
| "Date"

переменная default.mock

Использование в Deno

import mod from "node:test";

Тип

MockTracker

переменная mock

Использование в Deno

import { mock } from "node:test";

Тип

MockTracker

переменная test.mock

Использование в Deno

import { test } from "node:test";

Тип

MockTracker

© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/api/node/test

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API