Pur essendo molto amichevoli per le parti interessate, l'ATDD mirava a fornire una linea di "stop" quando una funzione è stata appena fatta. Ciò evita perdite di tempo per aggiungere codice non mirato (e talvolta inutile).
Questo è il motivo per cui alcuni team iniziano creando uno scheletro a piedi dell'applicazione e specificando direttamente con un test di accettazione la prima funzione richiesta.
Supponiamo questo primo test di accettazione (che non rappresenti un primo test di accettazione rilevante, solo un esempio):
Dato che Michael è appena stato creato nell'applicazione, il suo stato dovrebbe essere lasciato a non attivato.
Voglio scrivere i miei test di accettazione concentrandosi direttamente sulla logica di business (casi d'uso), non sulla GUI per le regole aziendali.
Quindi la mia domanda sarebbe ... come scriverlo? dal momento che non so già cosa sia un "Utente", che cos'è uno stato ecc ... In effetti, non dovrebbe essere il ruolo di TDD ad emergere il design e quindi questi componenti?
Ma se inizialmente pratico TDD per emergerli, il vantaggio di ATDD (come linea di arresto) scomparirebbe.
Immagino che sarebbe più coerente scrivere alcuni test di accettazione (prima di entrare nel ciclo TDD) quando il progetto è progredito bene, poiché tutti i componenti principali sarebbero già stati progettati.
Per riassumere, dovrei scrivere sempre il mio test di accettazione PRIMA del mio ciclo TDD?