Я экспериментирую с разработкой на основе тестов и обнаружил, что часто сталкиваюсь со следующей ситуацией:
- Я пишу тесты для некоторой функциональности X. Эти тесты не проходят.
- Пытаясь реализовать X, я вижу, что мне нужно реализовать некоторую функцию Y на нижнем уровне моего кода. Так...
- Я пишу тесты для Y. Теперь оба теста для X и Y не пройдены.
Однажды у меня было 4 функции в разных слоях кода, над которыми работали одновременно, и я терял свое внимание к тому, что я на самом деле делаю (слишком много тестов проваливалось одновременно).
Я думаю, что смогу решить эту проблему, приложив больше усилий к планированию своих задач еще до того, как начну писать тесты. Но в некоторых случаях я не знал, что мне нужно идти глубже, потому что, например, я не очень хорошо знал API нижнего уровня.
Что мне делать в таких случаях? Есть ли у TDD какие-либо рекомендации?