Update documentation and code snippets

This commit is contained in:
2025-12-02 22:59:58 +03:00
parent e6645730f0
commit 2800a7ffc2
30 changed files with 1494 additions and 3962 deletions
+40 -34
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-03 19:01+0300\n"
"POT-Creation-Date: 2025-12-02 22:27+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n"
@@ -26,87 +26,93 @@ msgstr ""
#: ../../root/testing.rst:4
msgid ""
"В этом разделе описаны практики тестирования приложений на основе "
"``Argenta``. Примеры основаны на фактическом публичном API: ``App``, "
"``Router``, ``Command``, ``Orchestrator``, DI через ``dishka`` и "
"интеграцию в ``argenta.di.integration``."
"``Argenta``. Примеры основаны на фактическом публичном API."
msgstr ""
#: ../../root/testing.rst:7
msgid "Модульное тестирование хендлеров"
msgid "Модульное тестирование обработчиков"
msgstr ""
#: ../../root/testing.rst:9
msgid ""
"Обработчики в Argenta — обычные функции. Их удобно тестировать как чистые"
" функции, не поднимая весь цикл приложения. Рекомендуются ``unittest`` "
"или ``pytest``."
"Обработчики в ``Argenta`` — обычные функции. Их удобно тестировать как "
"чистые функции, не поднимая весь цикл приложения. Рекомендуются "
"``unittest`` или ``pytest``."
msgstr ""
#: ../../root/testing.rst:11
msgid "Пример с ``unittest`` для простого хендлера без DI:"
msgstr ""
#: ../../root/testing.rst:18
msgid "Тестирование с внедрением зависимостей (DI)"
#: ../../root/testing.rst:11 ../../root/testing.rst:24
#: ../../root/testing.rst:37 ../../root/testing.rst:53
msgid "**Пример использования:**"
msgstr ""
#: ../../root/testing.rst:20
msgid ""
"Если хендлеру нужны зависимости, используйте ``dishka`` и интеграцию "
"Argenta:"
msgid "Тестирование с внедрением зависимостей (DI)"
msgstr ""
#: ../../root/testing.rst:27
#: ../../root/testing.rst:22
msgid ""
"Если обработчику нужны зависимости, используйте ``dishka`` и интеграцию "
"``Argenta``:"
msgstr ""
#: ../../root/testing.rst:33
msgid "Интеграционное тестирование приложения"
msgstr ""
#: ../../root/testing.rst:29
#: ../../root/testing.rst:35
msgid ""
"Для более высокого уровня тестов собирайте ``App`` и ``Router`` и "
"вызывайте хендлеры через парсинг команд, обходя бесконечный цикл ввода. "
"Это даёт близкое к реальности поведение без необходимости симулировать "
"``stdin``."
"вызывайте обработчики через парсинг команд, обходя бесконечный цикл "
"ввода. Это даёт близкое к реальности поведение без необходимости "
"симулировать ``stdin``."
msgstr ""
#: ../../root/testing.rst:36
msgid "E2E-тестирование цикла (опционально)"
#: ../../root/testing.rst:46
msgid "E2E-тестирование цикла"
msgstr ""
#: ../../root/testing.rst:38
#: ../../root/testing.rst:48
msgid ""
"Полный запуск цикла ``start_polling`` можно покрывать через подпроцесс с "
"передачей строк во ``stdin``. Это тяжелее и обычно не требуется. Если всё"
" же необходимо — вынесите конфигурацию в функцию ``main()`` и запускайте "
"модуль в подпроцессе с подготовленным вводом/выводом."
"передачей строк в ``stdin``. Это тяжелее и обычно не требуется. Если всё "
"же необходимо — пример ниже."
msgstr ""
#: ../../root/testing.rst:41
#: ../../root/testing.rst:51
msgid ""
"Обязательно передавайте строковый триггер команды выхода последним "
"элементом в списке, который передаёте в контекстном менеджере при патче "
"``input`` как аргумент ``side_effects``, иначе тестируемое приложение "
"будет ожидать ввода следующей команды и не сможет корректно завершиться."
msgstr ""
#: ../../root/testing.rst:62
msgid "Советы по тестированию"
msgstr ""
#: ../../root/testing.rst:43
#: ../../root/testing.rst:64
msgid "**Изолируйте тесты**: Каждый тест должен быть независимым от других."
msgstr ""
#: ../../root/testing.rst:44
#: ../../root/testing.rst:65
msgid ""
"**Моки для внешних интеграций**: БД, HTTP-клиенты и т.п. подменяйте "
"заглушками и провайдерами ``dishka``."
msgstr ""
#: ../../root/testing.rst:45
#: ../../root/testing.rst:66
msgid ""
"**Покрывайте ошибочные сценарии**: Некорректные флаги, неизвестные "
"команды, пустой ввод."
msgstr ""
#: ../../root/testing.rst:46
#: ../../root/testing.rst:67
msgid ""
"**Минимизируйте зависимость от форматирования**: Сравнивайте ключевые "
"фрагменты вывода, а не весь блок целиком."
msgstr ""
#: ../../root/testing.rst:47
#: ../../root/testing.rst:68
msgid "**Измеряйте покрытие**: Используйте ``pytest-cov``."
msgstr ""