Ho impostato i dati appropriati come parte dei dati. In questo modo lo scenario è completamente autonomo. Avere un database di test richiede conoscenze tacite (quali clienti sono considerati "attivi"?) O finire con i dati per casi oscuri (ho bisogno di un cliente con due acquisti precedenti e tre articoli nel loro attuale paniere). E sono d'accordo con l'altro Risposte che non dovresti mai dipendere dai dati di produzione per qualcosa di diverso dai test esplorativi o prestazionali, e anche allora i dati dovrebbero essere opportunamente disinfettati e resi anonimi per evitare incidenti.
Quando implementi i passaggi, i Givens dovrebbero fare tutto il necessario per preparare il mondo pronto per il passaggio "Quando". Ad esempio possono inserire i dati direttamente in un database. Non hanno bisogno di passare attraverso alcuna interfaccia o interfaccia utente dell'applicazione finché l'applicazione termina in uno stato coerente per verificare il comportamento a cui sei interessato (il passaggio Quando).
Il passaggio Quando dovrebbe interagire con l'applicazione esattamente come lo farebbe lo stakeholder. Quindi se lo scenario riguarda un utente che fa qualcosa, il passaggio Quando deve interagire con l'interfaccia utente. Infine, i passaggi Then eseguono tutto ciò che è necessario per verificare il risultato. Ancora una volta possono controllare i dati direttamente in un database, o controllare che i messaggi attesi siano stati emessi, ecc.
Penso che ciò consenta a Givens e Thens di "imbrogliare" in nome della convenienza, ma il passo When deve sempre giocare secondo le regole e interagire correttamente con l'applicazione.