Тестирование пакетов R
Best practices for writing R package tests using testthat version 3+. Use when writing, organizing, or improving tests for R packages. Covers test structure, expectations, fixtures, snapshots, mocking, and modern testthat 3 patterns including self-sufficient tests, proper cleanup with withr, and snapshot testing.
Что делает навык
Навык предоставляет лучшие практики написания тестов для R-пакетов с использованием testthat версии 3+. Он охватывает организацию структуры тестов, использование ожиданий (expectations), фикстур, снапшот-тестирования и современных паттернов, таких как самодостаточные тесты и очистка состояния через withr.
Когда применять
- Инициализация новой системы тестирования в R-пакете с использованием testthat 3-го издания.
- Написание самодостаточных тестов, которые не зависят от глобального состояния и корректно очищают побочные эффекты.
- Тестирование сложных выводов с помощью снапшот-тестирования (snapshot testing).
- Замена внешних зависимостей во время тестирования с помощью локального мокирования (local_mocked_bindings).
- Организация тестовых данных с использованием фикстур или конструкторов функций.
Как работает
- Инициализировать тестирование командой usethis::use_testthat(3), что создаст директорию tests/testthat/ и настроит DESCRIPTION.
- Создавать тестовые файлы, зеркально отражающие структуру кода R, используя usethis::use_test() или вручную создавая файлы test-*.R.
- Структурировать тесты с использованием иерархии Файл → Тест → Ожидание, применяя test_that() или BDD-синтаксис describe()/it().
- Обеспечивать самодостаточность тестов, помещая весь код настройки, выполнения и очистки внутрь блока test_that() или используя функции withr::local_*().
- Использовать соответствующие ожидания (expect_equal, expect_error, expect_snapshot и др.) для проверки поведения, типов и структур данных.
- Запускать тесты через devtools::test() или devtools::check() и управлять снапшотами с помощью testthat::snapshot_review() и snapshot_accept().
Примеры запросов агенту
Что понадобится
- R-окружение с установленными пакетами testthat (версии 3+), usethis и devtools.
Описание составлено по SKILL.md навыка, сверено 05.10.2026.
Как подключить
SKILL.md к навыкам ассистентаНавык — папка с файлом SKILL.md (описание + инструкции) и опциональными скриптами. Ассистент (Claude, Claude Code и совместимые) подхватывает его по описанию и следует шагам.