Quote:
|
Originariamente inviato da thebol
i tanti check, sono stati usati per verificare l'evolversi dei contatori.
|
ennò, non ci siamo... se fai così vuol dire che stai testando più d'una funzionalità del programma; ogni test deve testare una sola funzionalità e lo deve fare nella maniera più diretta possibile; il TDD in forma pura (quello che faccio sempre io

) prevede un test per ogni riga di codice, contando ovviamente solo le righe significative (non serve testare le parentesi graffe e le righe vuote insomma

)
Quote:
|
Ho a volte trovato dei test che passavano perche testavano la condizione sbagliata, o cose simili. Per questo spesso uso piu assert, per dimostrare che prima la situazione è in un modo, e poi in un altro.(classico esempio andare a vedere se nella posizione x,y non ci deve essere la gemma, si sbagliano le coordinate e il test passa per sbaglio..)
|
e come mai usare più asserzioni risolverebbe la cosa...? quando scrivi i test tu non puoi partire dal presupposto che tu potresti sbagliare a scrivere il test stesso oltre al codice. a parte che non è bene scrivere numeri costanti nel codice e una delle prossime cose da fare (dopo il sistema di log, che è più urgente) sarà sostituirli tutti con costanti e formule che operano sulle costanti, ma comunque anche se sbagli a scrivere un test e questo passa i casi sono due:
1) fallisce il corrispettivo "contro-test", ovvero il test che verifica che il codice testato non solo funzioni in un certo modo, ma che non funzioni in nessun altro modo
2) a runtime ti accorgi tu stesso che il programma non funziona
Quote:
|
Sicuramente si poteva fare il tutto in 2 test
|
le righe di codice testate da quel test sono solo 2 escludendo parentesi graffe e righe vuote?