Что вы имеете в виду, говоря "Ты
защищен от регрессии, потому что
этот тест внезапно провалится. "?
Смысл «модульных тестов» заключается в том, что они будут запускаться автоматически как часть цикла компиляции / проверки: вы будете запускать тесты после компиляции и перед проверкой кода. Если модульный тест не пройден, то вы знаете, что некоторый код, который вы только что написали , воссоздает старую ошибку.
редактировать:
Как ты можешь быть так уверен, что просто
потому что ваши юнит-тесты прошли все
Ваши ошибки были исправлены.
Как правило, если вы можете воспроизвести ошибку, вы можете выполнить тест для дублирования ее в коде. Наиболее важной частью является то, как только вы написали тест для проверки наличия ошибки, затем, если вы запустите тесты, и тест не пройден, вы снова введете ошибку. Одна большая книга на эту тему - «Эффективная работа с устаревшим кодом»
Разве нельзя для одной ошибки
пройти несколько юнит-тестов.
Конечно, это может охватывать несколько тестов.
Давайте предположим, что ошибка "не могу сохранить файлы".
И давайте предположим, что есть несколько различных сценариев, которые могут вызвать это:
недостаточно места на диске,
файл, который вы пишете поверх
открыт и заблокирован другим процессом,
есть проблемы с разрешениями (например,
вы не можете получить доступ к каталогу, или
нет прав на запись),
или во время сетевой ошибки
Вы сохраняете файл.
В идеале, ваш тестовый комплект (набор тестов) должен иметь отдельный тест для каждого. Для некоторых тестов вам может понадобиться использовать вещи, которые называются «фиктивными объектами» (их также можно использовать, когда вы еще не написали код для компонента).