Добавить в корзинуПозвонить
Найти в Дзене

Недавно фиксил баг у себя в блоге, и заодно нужно было покрыть тестами парсер тегов для телеграм-постов

В какой-то момент вспомнил, что в Node.js уже есть встроенный тест-раннер. Решил не тащить лишние зависимости и просто проверить, насколько он вообще живой. В итоге оказалось, что для таких задач — более чем ок. https://github.com/acherkashin/acherkashin.github.io/blob/main/tests/telegram-tags.util.test.ts import assert from 'node:assert/strict'; import test from 'node:test'; test('extracts multiple hashtags from a single line', () => { const tags = extractTelegramTagsFromMarkdown('#frontend #testing #astro'); assert.deepEqual(tags, ['frontend', 'testing', 'astro']); }); Что ещё приятно — тесты можно писать на чистом TypeScript без установки дополнительных пакетов. Для утилит, парсеров, серверного кода и прочих небольших юнит-тестов этого раннера вполне хватает. Но если у вас фронтенд-проект и нужны тесты компонентов, браузерное окружение, снапшоты, расширенные матчеры и привычная экосистема вокруг раннера, то Jest или Vitest тут ощущаются заметно сильнее. Ещё по теме: - Докум

Недавно фиксил баг у себя в блоге, и заодно нужно было покрыть тестами парсер тегов для телеграм-постов.

В какой-то момент вспомнил, что в Node.js уже есть встроенный тест-раннер. Решил не тащить лишние зависимости и просто проверить, насколько он вообще живой.

В итоге оказалось, что для таких задач — более чем ок.

https://github.com/acherkashin/acherkashin.github.io/blob/main/tests/telegram-tags.util.test.ts

import assert from 'node:assert/strict';

import test from 'node:test';

test('extracts multiple hashtags from a single line', () => {

const tags = extractTelegramTagsFromMarkdown('#frontend #testing #astro');

assert.deepEqual(tags, ['frontend', 'testing', 'astro']);

});

Что ещё приятно — тесты можно писать на чистом TypeScript без установки дополнительных пакетов.

Для утилит, парсеров, серверного кода и прочих небольших юнит-тестов этого раннера вполне хватает.

Но если у вас фронтенд-проект и нужны тесты компонентов, браузерное окружение, снапшоты, расширенные матчеры и привычная экосистема вокруг раннера, то Jest или Vitest тут ощущаются заметно сильнее.

Ещё по теме:

- Документация

- Trying Node.js Test Runner

А вы чем гоняете тесты?

🔥 — Vitest

👍 — Jest

❤️ — Что-то другое (напишу в комментариях)

#nodejs #tests