Sto cercando di capire BDD. Ho letto alcuni articoli e, come ho capito, BDD è "il prossimo passo" di TDD. Lo dico perché trovo entrambi molto simili e, come ho potuto leggere in questo articolo , BDD è nato come un miglioramento rispetto a TDD. Fantastico, mi piace davvero l'idea.
C'è un punto pratico che non capisco, c'è un file .feature in cui il BA scriverà tutto il comportamento previsto in cui il sistema avrebbe. Come BA, non ha idea di come sia costruito il sistema, quindi scriveremo qualcosa del genere:
+ Scenario 1: l'account è in credito +
Dato che l'account è in credito
E la carta è valida
E il distributore contiene contanti
Quando il cliente richiede contanti
Quindi assicurarsi che il conto sia addebitato e assicurarsi che venga erogato denaro
E assicurati che la carta sia restituita
Ok, questo è fantastico, ma ci sono molte parti del sistema che collaboreranno affinché ciò accada (pensate a Account obj, Dispenser obj, Customer obj e così via). Per me questo sembra un test di integrazione.
Mi piacerebbe avere test unitari. Come testare il codice che controlla se il distributore ha denaro? O che il denaro viene erogato? O che il conto viene addebitato quando richiesto? Come posso combinare i test unitari con i test "BA Created"?