1 - Как я могу узнать, что мой тест или отображение неверны?
На сегодняшний день, откуда вы знаете, что отображение верно?Кто-то должен будет исследовать, если это проблема.Лучше, чтобы модульный тест не прошел, и теперь кто-то может исследовать его, вместо того, чтобы передавать его в QA или даже клиенту.
2 - Что произойдет, если кто-то изменит отображение и мой тест прервется?
Это не ваши модульные тесты, это модульные тесты.Тот, кто ломает сборку, исправляет сборку.Каждый должен выполнить все модульные тесты перед регистрацией, и они должны запускаться автоматически при каждой регистрации по Гудзону или подобному.
3 - Как я должен обосноватьсколько времени мне нужно потратить, чтобы сделать тестовые случаи?
Я лично обнаружил, что TDD тревожно быстрее, чем нормальное развитие.Даже если бы это была та же скорость, количество времени, сэкономленного на обнаружении ошибок на уровне разработчика / предварительного тестирования, окупится почти мгновенно.
Не тратьте время на написание модульных тестов, чтобы убедиться, что работакод работает.Добавляйте / обновляйте юнит-тест только в том случае, если вы: 1) изменили функциональность, 2) добавили новую функциональность, 3) исправили ошибку.
Плюс позже, когда вы вернетесь и выполните рефакторинг, вы будете знать, что у вас естьне сильно нарушен код.
4 - Что делать, если тест дает ложный отрицательный результат (т.е. проходит, когда не должен)?
Это фактжизнь.Ошибки будут пропущены.Тот факт, что модульное тестирование может пропустить ошибки, не делает недействительным юнит-тестирование.Я имею в виду, если QA пропустил ошибку, вы бы уволили отдел QA?Цель модульного тестирования состоит в том, чтобы уменьшить количество ошибок, которые не попадают в группу разработчиков.Таким образом, QA может сконцентрироваться на более серьезных проблемах.
Если это произойдет, единственное, что вы можете сделать, это вернуться назад, обновить модульный тест и затем исправить код.
Модульное тестирование нене серебряная пуля, но она бесценна в развитии.