Domanda

Il test unitario è, in parole povere, testare bit del tuo codice in isolamento con il codice di test.I vantaggi immediati che mi vengono in mente sono:

  • L'esecuzione dei test diventa automatizzabile e ripetibile
  • Puoi eseguire test a un livello molto più granulare rispetto ai test punta e clicca tramite una GUI

Rytmis

La mia domanda è: quali sono le attuali "migliori pratiche" in termini di strumenti, nonché quando e dove utilizzare i test unitari come parte della codifica quotidiana?

Cerchiamo di essere in qualche modo indipendenti dalla lingua e di coprire tutte le basi.

È stato utile?

Soluzione

Ok, ecco alcune migliori pratiche da parte di qualcuno che non esegue i test unitari quanto dovrebbe... tosse.

  1. Assicurati che i tuoi test siano testati unocosa e una cosa soltanto.
  2. Scrivi test unitari mentre procedi.Preferibilmente Prima scrivi il codice su cui stai testando.
  3. Non eseguire test unitari sulla GUI.
  4. Separa le tue preoccupazioni.
  5. Minimizza le dipendenze dei tuoi test.
  6. Comportamento finto con schernisce.

Altri suggerimenti

Potresti voler dare un'occhiata TDD su tre schede E Tre schede per ricordare facilmente l'essenza dello sviluppo basato sui test:

Carta n. 1.Le tre leggi dello zio Bob

  • Non scrivere codice di produzione se non per superare un test fallito.
  • Scrivi solo un test sufficiente a dimostrare un fallimento.
  • Scrivi solo il codice di produzione sufficiente per superare il test.

Carta n. 2:PRIMI PRINCIPI

  • Veloce:Incredibilmente veloce, come in centinaia o migliaia al secondo.
  • Isolato:Il test isola chiaramente un guasto.
  • Ripetibile:Posso eseguirlo ripetutamente e ogni volta passerà o fallirà allo stesso modo.
  • Autoverifica:Il test è inequivocabilmente superato-fallito.
  • tempestivo:Prodotto in sincronia con piccole modifiche al codice.

Carta n. 3:Nucleo del TDD

  • Rosso:la prova fallisce
  • Verde:superamento del test
  • Refactoring:codice e test puliti

Il cosidetto xUnità quadro è ampiamente utilizzato.È stato originariamente sviluppato per Smalltalk come SUnit, si è evoluto in JUnit per Java e ora ha molte altre implementazioni come NUnit per .Net.È quasi uno standard de facto: se dici che stai utilizzando test unitari, la maggior parte degli altri sviluppatori presumerà che intendi xUnit o simili.

Una grande risorsa per le "migliori pratiche" è il file Blog sui test di Google, ad esempio un post recente su Scrittura di codice verificabile è una risorsa fantastica.Nello specifico, i post settimanali della serie "Test sulla toilette" sono ottimi da pubblicare sul tuo cubo o toilette, così puoi sempre pensare ai test.

La famiglia xUnit è il pilastro dei test unitari.Sono integrati in Netbeans, Eclipse e molti altri IDE.Offrono una soluzione semplice e strutturata per i test unitari.

Una cosa che cerco sempre di fare quando scrivo un test è ridurre al minimo l'utilizzo di codice esterno.Con questo intendo:Cerco di ridurre al minimo il codice di installazione e smontaggio per il test e cerco di evitare il più possibile l'utilizzo di altri moduli/blocchi di codice.Un codice modulare ben scritto non dovrebbe richiedere troppo codice esterno nella sua configurazione e smontaggio.

NUnit è un ottimo strumento per qualsiasi linguaggio .NET.

I test unitari possono essere utilizzati in diversi modi:

  1. Prova la logica
  2. Aumentare la separazione delle unità di codice.Se non puoi testare completamente una funzione o una sezione di codice, significa che le parti che la compongono sono troppo interdipendenti.
  3. Promuovi lo sviluppo, alcune persone scrivono test Prima scrivono il codice da testare.Questo ti costringe a pensare a cosa vuoi che sia il codice Fare, e poi ti dà una linea guida precisa su quando lo avrai raggiunto.

Non dimenticare il supporto per il refactoring.ReSharper su .NET fornisce il refactoring automatico e soluzioni rapide per il codice mancante.Ciò significa che se scrivi una chiamata a qualcosa che non esiste, ReSharper ti chiederà se vuoi creare il pezzo mancante.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top