Вообще, тесты до кода очень помогают научиться писать тестируемый код.
Вот, например, есть какой-нибудь модуль. Красиво задизайнен. Ясные абстракции. Четкие паттерны. А тесты на него пишутся очень тяжело и многословно.
Начинаешь упрощать тесты, изолировать контракты, и через какое-то время начинаешь понимать, каким же дизайнерским убожеством была изначальная реализация.