Из опыта Кент Бека, мы должны запомнить для себя два урока.
Первый урок
Писать тесты настолько быстрыми, чтобы мы могли их запускать раз за разом и запускать их очень часто. Это поможет нам поймать ошибки до того, как их кто-то увидит.
Второй и самый главный урок
Писать тесты, которые зависят друг от друга, передают данные друг другу и так далее — это утопия и анти-паттерн. Если у нас один сломанный тест — то у нас только одна проблема. Если уже два сломанных теста — у нас две проблемы.
Основная проблема тут в том, что если у нас есть один хрупкий тест и второй тест, который зависит от первого, то дайте угадать, сколько раз вы их почините? Да не считанное количество! Так было и у Кент Бека, когда он приходил утром в офис, у него в один день все тесты проходили, а в другой день — был полный хаос.
Одно из преимуществ изолированных тестов это то, что тесты независимы от того, в каком порядке они выполняются. Теперь мы сможем собрать subset тестов и разом всех их запустить, и при этом не волноваться о том, что сейчас сломается тест, потому что предыдущий был удален или сломан. И как второе преимущество изолированных тестов, так это то, что они побуждают вас составлять решения из сильно связных в слабо связанные объекты.