Как часто мы должны писать модульные тесты? - PullRequest
20 голосов
/ 29 марта 2010

Недавно мой наставник познакомил меня с подходом к разработке, основанным на тестировании, и он призывает меня написать юнит-тест всякий раз, когда «это имеет смысл». Я понимаю некоторые преимущества наличия полного комплекта модульных тестов как для регрессионного тестирования, так и для рефракторинга, но я удивляюсь, как часто и как нужно писать модульные тесты.

Мой наставник / руководитель разработки просит меня написать новый пример модульного теста для вновь написанного потока управления в методе, который уже тестируется существующим классом тестирования, и я думаю, что это излишнее. Как часто вы пишете свои юнит-тесты и насколько детальными должны быть ваши юнит-тесты? Спасибо!

Ответы [ 12 ]

0 голосов
/ 29 марта 2010

Модульные тесты будут:

  • дает вам уверенность в том, чтобы вносить изменения в рефакторинг, зная, что вы больше ничего не нарушаете.
  • действует как своего рода «живая документация» вашего кода, позволяя другим точно знать, как код будет вести себя в различных обстоятельствах.
  • при соблюдении строгого TDD, как описано в @ Justin , прохождение всех модульных тестов, написанных до того, как вы начали писать код, сообщит вам, когда вы «закончили» кодирование. По моему опыту, это также приводит к значительно упрощенному и более простому для понимания (более чистому) коду.

Как упоминает ваш наставник, вы должны писать только модульные тесты, которые имеют смысл. Основное правило, которое я использую, заключается в том, что я пытаюсь написать модульные тесты для фрагментов кода, которые выполняют бизнес-логику. Как правило, я не пишу модульные тесты для классов bean-компонентов с чуть большим, чем геттеры и сеттеры.

Юнит-тесты, как правило, со временем становятся более ценными, так как они расширяются и улучшаются для исправления ошибок и других улучшений кода, сделанных после первоначальной доставки.

0 голосов
/ 29 марта 2010

Как сказал Джастин, вы должны писать свой тестовый модуль, прежде чем писать код.

Хотя это, вероятно, лучшее, что нужно сделать, иногда это излишне. В зависимости от проекта я иногда пишу юнит-тест только для каждой ошибки, которую я нахожу (и исправляю).

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...