TGViewer
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter @phpproglib · 10.5K subscribers
Post #3760 2.9K
Антипаттерны модульного тестирования

🧪 Тестирование Приватных/Защищенных Методов:


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

🛡️ Нарушение Инкапсуляции в Целях Упрощенных Тестов:

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

🔍 Разглашение Реализации в Тестах:

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

🚯 Загрязнение Кода:

Добавление неиспользуемого кода или флагов исключительно для целей тестирования является формой загрязнения кода.
Интерфейсы могут быть выделены и использованы для мокирования вместо добавления лишнего кода только для тестирования.

Статья подчеркивает, что всегда важно учитывать практические решения и в некоторых случаях нарушение правил может быть оправданным. Тем не менее, важно иметь веские причины для таких решений и поддерживать баланс между написанием тестируемого кода и соблюдением хороших программистских практик.
  • 🔥 5
  • 👍 2
  • ❤ 1
More from @phpproglib
  1. Oct 10, 2026Post #6729
  2. Oct 10, 2026Перенос MiniJinja с Rust на Go силами Opus и Codex Около десяти часов работы агента и прим…
  3. Oct 2, 2026🎹 Что делать после ChatGPT? Следующий шаг — AI-агенты. Они не просто отвечают на запросы,…
  4. Sep 30, 2026🔥 Последний день для разработчиков AI уже пишет код. Теперь важнее научиться встраивать е…
  5. Sep 30, 2026🐸 Библиотека пхпшника
  6. Sep 29, 2026💡 Laravel-фича, которая спасает тесты от случайных запросов Http::preventStrayRequests()…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →