Иногда на примере это лучший способ. Я также нахожу это напоминанием людям, что некоторые вещи просто не происходят, когда что-то проверяется. В следующий раз, когда кто-нибудь попросит вас написать что-нибудь, сделайте это с тестами. В конце концов ваши коллеги будут завидовать легкости, с которой вы можете изменить свой код и знать, что он все еще работает.
Что касается управления, вам нужно подчеркнуть, сколько времени теряется из-за ядерного взрыва, который происходит, когда вам нужно внести изменения в кодовую базу X, которая не тестируется.
Многие разработчики не понимают, насколько сильно они проводят рефакторинг, не гарантируя, что они сохраняют поведение во всей системе. Для меня это самое большое преимущество модульного тестирования и TDD на мой взгляд.
- Изменение требований к программному обеспечению
- Программное обеспечение изменяется в соответствии с требованиями
Единственная уверенность - это изменение. Изменение кода, который не тестируется, требует, чтобы разработчик знал обо всех возможных побочных эффектах поведения. Реальность такова, что кодеры, которые думают, что они могут читать каждую перестановку, делают это путем процесса проб и ошибок, пока ничто не сломается, очевидно. В этот момент они регистрируются.
Прагматичный программист признает, что он / она не совершенен и все знает, и что тесты подобны страховочной сети, которая позволяет им быстро и безопасно обходить канат рефакторинга.
Что касается того, когда писать тест по коду с нуля, мне нужно было бы отстаивать как можно больше. Потратьте время на определение поведения , которое вы хотите использовать в своей системе, и сначала напишите тесты, чтобы выразить эти конструкции более высокого уровня. Модульные тесты могут прийти, когда мысли кристаллизуются.
Надеюсь, это поможет.