REPOSITORY / ScuroNeko/Laniakea

Wiki

KNOWLEDGE REPOSITORY
3
Testing Bots with Laniakea RU
ScuroNeko edited this page 2026-05-20 13:19:27 +03:00

Testing Bots with Laniakea RU

English version: Testing-Bots-with-Laniakea

Это краткая русскоязычная версия страницы про тестирование. Полная и наиболее актуальная страница: Testing-Bots-with-Laniakea.

Почему библиотеку удобно тестировать

Laniakea хорошо тестируется обычными Go unit tests.

В репозитории уже используются паттерны вроде:

  • fake HTTP transport для tgapi;
  • прямые тесты для вспомогательных методов MessageContext;
  • routing tests для commands и payloads;
  • runner tests.

Что стоит тестировать в первую очередь

  • public handler flows;
  • валидацию аргументов;
  • callbacks и декодирование данных callback;
  • поведение middleware;
  • длинные ответы;
  • семантику запуска и остановки;
  • регрессии, чувствительные к миграции.

Тесты для tgapi

Для низкоуровневого API удобно подменять http.Client transport и проверять:

  • тело запроса;
  • имя метода;
  • разбор ответа;
  • поведение retry и ошибок.

Тесты для логики обработчиков

Для тестов уровня обработчика обычно полезно:

  • собрать MessageContext;
  • вызвать обработчик напрямую;
  • проверить побочные эффекты и ответы.

Тесты для routing

Отдельно полезно тестировать:

  • сопоставление команд;
  • сопоставление данных callback;
  • порядок middleware;
  • изоляцию контекста между цепочками плагинов.

Тесты для фоновых задач

Для фоновых задач важно проверить:

  • какие режимы реально запускаются;
  • какие конфигурации скипаются;
  • как ведет себя остановка.

Практические советы

  • Предпочитай table-driven tests там, где много сценариев.
  • Добавляй regression tests на найденные ошибки.
  • Не ограничивайся только успешным сценарием.

Что читать дальше