Vengo con TDD / BDD.
Sono un po 'confuso, però, quando si tratta di scrivere inizialmente i miei test BDD e poi aggiungere altri test dopo i test molto ampi.
Per esempio, diciamo che sto dando i primi requisiti:
- Dovrebbe contenere un array.
- Dovrebbe stampare un elenco.
- Dovrebbe cercare questa condizione specifica.
Quindi scrivo i miei test:
describe('myApp', function (){
it('should take in an array',function(){
//expect
});
it('should print a list',function(){
//expect
});
it('should look for this specific condition',function(){
//expect
});
});
Ora ho bisogno di aggiungere alcune funzionalità alla mia app per superare questi test, quindi dico che scrivo una funzione che controlla se l'app è effettivamente passata attraverso un array. Oppure controllo l'input nell'app stessa? Esempio:
myApp(anArray) {
checkArray(anArray) // returns true or false
}
Quindi ora la mia app ha un nuovo metodo .. checkArray()
. Quindi ho bisogno di rifattorizzare i miei test, ma come li modifico. Domande:
- Scrivo un nuovo blocco
describe
? - Posso / devo inserire un blocco
describe
all'interno di un bloccoit
? -
Dovrebbe essere nel mio test
should be an array
?describe('myApp', function (){ it('should take in an array',function(){ describe('myApp.checkArray, { it('should return true given an array', function(){ //assertORexpectORwhatever }); }); });
});
O dovrei aggiungere il blocco descrittivo dopo il primo blocco descrittivo come vedo sempre, ma il mio iniziale SHOULD
non sta più descrivendo myApp
. Ad esempio:
describe('myApp', function (){
describe('myApp.checkArray, {
//Describes myApp, not the checkArray function... *my problem*
it('should take in an array',function(){
it('should return true given an array', function(){
//assertORexpectORwhatever
})
})
});
});
Sto facendo qualcosa di fondamentalmente sbagliato? Sto descrivendo il mio problema abbastanza bene?