Sembra che tu stia cercando di "vendere" i test unitari nella tua azienda. (Buono per te!)
Ho intenzione di rischiare di essere odiato qui, ma suona come se tu potessi non farlo
essere al 100% chiari su tutti i vantaggi dei test di unità di scrittura. Come altro
le risposte hanno sottolineato, ci sono molte ragioni per cui i test unitari sono estremamente
utile (a volte anche necessario) oltre a catturare bug che il compilatore
non ha catturato.
Suggerisco di familiarizzare con tutti i vantaggi e di progettare la mia demo di conseguenza.
Ecco alcune cose veloci di cui vorrei parlare / demo (non in un ordine speciale):
Convalida rapida che l'unità di codice funziona senza doverla effettivamente eseguire
nel suo ambiente previsto. Questo è estremamente cruciale quando ci vogliono 5 minuti
per costruire il tuo progetto, 10 minuti per dispiegarlo e mezz'ora per provare a
trova lo scenario quando il codice viene effettivamente eseguito per verificare che funzioni ".
Convalida del codice che sarebbe estremamente difficile da testare nel suo intento
ambiente. Un'enorme percentuale del codice che scriviamo sta gestendo le condizioni di errore
o condizioni che si verificano solo in alcune strane circostanze. Queste condizioni
sono molto difficili da riprodurre nella vita reale, quindi richiedono un'attenzione speciale
testare.
Convalida del codice "library". Se stai scrivendo il codice che altri consumano, il tuo solo
modo di convalidare sarebbe scrivere un altro "progetto" che consuma e guida
esso. I test unitari ti danno la certezza che il tuo codice funzioni senza averlo
utilizzare un progetto che guida il tuo codice per testarlo o per scrivere un'app "tester"
te stesso.
TDD. Test Driven Development è un modo di pensare abbastanza nuovo
test unitari. Quando si esercitano gli sviluppatori TDD, scrivere prima i test,
quindi il codice dopo. TDD può migliorare il tuo codice scrivendo solo codice che soddisfi il superamento dei test. C'è molto dibattito su questo argomento
e io stesso l'ho usato con estremo successo in determinate situazioni, ma non così
con successo in altri (IMHO dipendente dal contesto).
I test documentano il tuo codice. Molte volte i test sono la documentazione più aggiornata
su come dovrebbe comportarsi il tuo codice. Quante volte lo cerchi già
pezzo di codice esistente che esercita una classe / metodo solo per vedere come sei
dovrebbe usarlo? Beh, i test unitari ti danno proprio questo.
Rottura del codice. Sì, i test unitari catturano i bug. Tuttavia lo trovo più spesso
catturare bug durante lo sviluppo. Scrivo il codice, poi mi giro per scrivere il
test e questa è la fase in cui prendo più errori.
Sono sicuro che ci sono altre cose da menzionare qui, quindi dovresti fare più ricerche
prima del tuo allenamento Un'altra cosa. È difficile trovare esempi durante i test unitari
'ha salvato la giornata in grande stile' perché cattura i bug durante lo sviluppo e
molto silenziosamente la maggior parte delle volte. Tu capisci davvero i loro benefici
quando li hai scritti per un po 'per vedere come salvano la giornata
(su base giornaliera).
Vorrei confrontarli con l'esercizio. È difficile trovare un caso ogni giorno
l'esercizio ha salvato qualcuno dall'avere un cancro o un infarto.
Ma sai in fondo che è necessario vivere una vita lunga e sana.