Zarówno o BDD, jak i TDD wiele razy już pisałem. Najważniejszą rzeczą w TDD jest sekwencja red-green-refactor. Zwykle BDD\TDD przybiera następującą postać:
- Zaczynamy od etapu BDD. Definiujemy wymagania za pomocą języka rozumianego zarówno przez programistów jak i jak BA\PO. Za pomocą Specflow możemy zdefiniować np. następujący test:
Given I have entered 50 into the calculator And I have entered 70 into the calculator When I press add Then 120 should be displayed on the screen
- W celu zaimplementowania powyższej specyfikacji, rozpoczynamy cykl TDD. W tym celu tworzymy serie klasycznych testów jednostkowych. Cykl TDD trwa do momentu, kiedy specyfikacja z punktu pierwszego zostanie zaimplementowana.
- Definiujemy następną specyfikację, rozpoczynając zatem kolejny cykl TDD.
Innymi słowy, na każdą specyfikacje BDD, przypada ileś testów TDD. Wszystko jest wykonywane na zasadzie red-green-refactor. Definiując specyfikację BDD w punkcie pierwszym, oczywiście taki test będzie czerwony dopóki nie przeprowadzimy cyklu TDD.