Я работаю над проектом ASP.NET MVC около 8 месяцев. По большей части я использую TDD, некоторые аспекты были рассмотрены модульными тестами только после того, как я написал фактический код. В целом проект довольно хороший тест покрытия.
Я доволен результатами до сих пор. Рефакторинг действительно намного проще, и мои тесты помогли мне выявить немало ошибок даже до того, как я впервые запускал свое программное обеспечение. Кроме того, я разработал более сложные подделки и помощники, чтобы помочь мне свести к минимуму код тестирования.
Однако мне не очень нравится тот факт, что мне часто приходится обновлять существующие модульные тесты для учета рефакторинга, который я сделал для программного обеспечения. Рефакторинг программного обеспечения теперь быстрый и безболезненный, но рефакторинг моих модульных тестов довольно скучный и утомительный. Фактически затраты на поддержание моих модульных тестов выше стоимости их написания в первую очередь.
Мне интересно, могу ли я что-то делать неправильно или если это соотношение стоимости разработки теста и обслуживания тестирования является нормальным. Я уже пытался написать как можно больше тестов, чтобы они охватывали мои истории пользователей, а не систематически охватывали мой объектный интерфейс, как предлагается в этой статье в блоге.
Кроме того, есть ли у вас дополнительные советы о том, как писать тесты TDD, чтобы рефакторинг прерывал как можно меньше тестов?
Изменить: Как правильно заметил Хеннинг и тванфоссон, обычно это часть настройки, которая наиболее дорога для записи и обслуживания. Сломанные тесты (по моему опыту) обычно являются результатом рефакторинга модели домена, которая несовместима с частью установки этих тестов.