Eksperymentuję z programowaniem opartym na testach i odkryłem, że często dochodzę do następującej sytuacji:
- Piszę testy dla niektórych funkcji X. Testy te kończą się niepowodzeniem.
- Próbując zaimplementować X, widzę, że muszę zaimplementować jakąś funkcję Y w dolnej warstwie mojego kodu. Więc...
- Piszę testy dla Y. Teraz oba testy dla X i Y kończą się niepowodzeniem.
Kiedyś miałem jednocześnie 4 funkcje na różnych warstwach kodu i traciłem koncentrację na tym, co robię (zbyt wiele testów kończy się niepowodzeniem w tym samym czasie).
Myślę, że mógłbym to rozwiązać, wkładając więcej wysiłku w planowanie moich zadań, jeszcze zanim zacznę pisać testy. Ale w niektórych przypadkach nie wiedziałem, że będę musiał zejść głębiej, ponieważ np. Nie znałem zbyt dobrze API dolnej warstwy.
Co powinienem zrobić w takich przypadkach? Czy TDD ma jakieś zalecenia?