So che tutti vanno avanti e avanti su come si dovrebbe progettare prima tutto il test, ma io tendo ad attaccare con test unitari cose più complicate.
La mia regola empirica è che costruisco test automatizzati per cose che in realtà mi aspetto di rompere con regolarità, o cose che non noterò immediatamente sono infranti. E soprattutto, voglio che verifichi cose che non posso/non scriverò approfonditamente.
Ad esempio, il modulo "Calcola alcune cose complicate utilizzando 47 diverse variabili" dovrebbe avere una serie di test che ottengono una buona copertura del codice e coprono tutti i possibili percorsi di codice, ma il codice che salva in modo affidabile restituisce il risultato al database non ha necessariamente bisogno di un test, specialmente se si sta facendo un semplice lavoro CRUD.
Inoltre, mi piace utilizzare i test dell'interfaccia utente automatizzati (utilizzando WatiN o qualcosa di simile) per creare test di regressione per i miei siti, così quando cambio alcuni componenti principali posso eseguire un controllo di integrità per assicurarmi di non fai esplodere qualche angolo oscuro del sito.
Alla fine, è tutto sul ROI. Quanto tempo stai mettendo in questo, e quanto ne stai uscendo.Se i tuoi test unitari si avvicinano al 100% della copertura del codice su qualche livello di accesso ai dati stupido della tua app CRUDy business, stai sprecando il tuo tempo e il denaro del tuo datore di lavoro, in modo semplice e semplice. Ma se stai costruendo missili o dispositivi medici o se sei un negozio a due punti che non ha le risorse per un dipartimento di QA, molti test di unità possono farti risparmiare un sacco di tempo, denaro e/o vite .
fonte
2010-07-09 17:57:16
Quindi da quello che sto capendo da queste risposte I non dovrebbe leggere/scrivere il database del test unitario. Dovrei piuttosto testare codice di logica aziendale. – foreyez
Prova tutto ciò che potrebbe eventualmente rompersi. Questo è il senso comune. –