Sto cercando di capire BDD. Ho letto alcuni articoli e come ho capito BDD è "il prossimo passo" da TDD. Dico questo perché trovo che entrambi siano molto simili e, come ho potuto leggere in questo articolo , BDD è nato come un miglioramento da TDD. Fantastico, mi piace molto l'idea.
C'è un punto pratico che non ottengo, ho pensato: c'è un file .feature in cui il BA scriverà tutto il comportamento previsto in cui il sistema dovrebbe avere. Come BA, non ha idea di come sia stato costruito il sistema, quindi scriveremo qualcosa del genere:
+Scenario 1: Account is in credit+
Given the account is in credit
And the card is valid
And the dispenser contains cash
When the customer requests cash
Then ensure the account is debited And ensure cash is dispensed
And ensure the card is returned
Ok, questo è grandioso, ma ci sono molte parti del sistema che collaboreranno in modo che possa accadere (pensate a Account obj, Dispenser obj, Customer obj e così via). Per me sembra un test di integrazione.
Mi piacerebbe avere test di unità. Come posso testare il codice che controlla se il distributore ha soldi? O che il denaro è distribuito? O che l'account viene addebitato quando richiesto? Come posso mescolare i test unitari con i test "BA creati"?