Anche se non sono stato in un progetto TDD o BDD, o sono stato in alcuni che dicono che stanno facendo TDD ma sono piuttosto lontani da esso, queste sono cose a cui penso e cerco davvero di leggere tanto come posso circa.
Torna alla domanda. Quando stai facendo BDD dovresti scrivere prima il tuo "test" e fallire, giusto? E poi implementare quella funzione o come la chiami. Ma se prendi questo all'estremo non potrebbe essere una sorta di sviluppo top-down? Stai guardando la tua interfaccia utente e dice "Mi piacerebbe avere questa funzionalità / comportamento qui". Quindi correggi l'interfaccia utente per implementare quella funzionalità e il codice che supporta l'interfaccia utente. A questo punto non hai implementato alcuna logica di business o logica di accesso ai dati, hai appena implementato il tuo comportamento. Quello a cui sto mirando invece di scrivere il test prima di tutto scriverà prima il codice dell'interfaccia utente. In alcuni casi, dovrebbe comportare lo stesso codice per l'accesso ai dati e il livello aziendale, dal momento che si utilizza il codice dell'interfaccia utente per definire ciò che la tua azienda deve supportare.
Ovviamente dovresti completare questo con i test che vengono utilizzati per assicurarti che la funzione funzioni come dovrebbe nella funzione.
Qualche idea?