6. Egy megoldás: BDD
• Behavior Driven Development
▫ Specification-by-example
▫ Executable specification
7. BDD
• TDD – Test Driven Development
Red
Refactor Green
8. TDD – kicsit másképp
• TDD - Osztályok, kis egységek szintje
▫ „Ha a CSVFileReader osztály egy hibás dátumot
tartalmazó sort olvas be, akkor dob egy
InvalitDateFormat kivételt”
• BDD – üzleti nyelv – nagyobb egységek
▫ „Ha beimportáltatok egy hibás dátumot tartalmazó
számlatörténetet, akkor hibaüzenetet kapok
arról, hogy hibás dátumot tartalmaz az állomány”
9. Elfogadási teszt
UI
Haladási irány Service
• TDD – ?
• BDD – kívülről befelé Domain
1. Elfogadási teszt –
használná a UI-t
2. UI – meghívná Service-t
3. Service – használná a Domain-t
4. Domain osztály hivatkozik egy másik domain
osztályra
10. Specifikáció formája
• User Story
▫ Cím:
Kosár
▫ Ki-Mit-Miért csinál
Potenciális vásárlóként
szeretnék könyveket rakni a kosaramba
azért, hogy egyszerre több könyvet meg tudjak
rendelni
11. Specifikáció formája – Szcenáriók
• Sablon: Given – When – Then
• Scenario: Books should be placed into basket
▫ Given I have a basket with: Book1
▫ When I place Book2 into the basket
▫ Then my shopping cart should contain 2 items
▫ And my basket should contain exactly 1 Book1
▫ And my basket should contain exactly 1 Book2