Torno a parlare, ancora una volta, dell'argomento unit test questa volta per condividere il risultato di un'esperienza che difficilmente avrei immaginato.
Questo è lo scenario. In questi giorni mi sono trovato a dover realizzare la configurazione per il deploy di un progetto Rails del quale non ho seguito direttamente lo sviluppo. Obiettivo della mia attività era predisporre il progetto per la messa online ed eseguire una serie di attività di normalizzazione.
Il progetto si basa su Rails 2.1 e, purtroppo, durante lo sviluppo la fase di creazione dei test è stata ignorata. Normalmente, la prima cosa che faccio appena apro un progetto Rails è lanciare la test suite e verificare eventuali errori.
La prima volta che ho lanciato questo comando ho ricevuto un centinaio di errori, per la maggior parte dovuti ai pochi test preconfigurati da Rails che, in seguito allo sviluppo, erano stati invalidati.
Uno alla volta ho risolto tutti i conflitti portando l'applicazione ad eseguire correttamente la test suite senza generare alcuna eccezione
Il secondo passo prevedeva l'upgrade di Rails alla 2.2.2. Aggiorno la versione del framework come indicato in questo articolo
Gulp! 4 eccezioni generate
Pur essendo completamente vuoti, i test hanno praticamente forzato l'esecuzione di ogni singolo controller dell'applicazione, anche quello più remoto, consentendomi così di individuare immediatamente tutti gli errori di compilazione
Morale della favola, meglio avere una test suite vuota che non averla affatto o, peggio ancora, averla invalida
A questo punto, anche i più scettici afflitti dal morbo del "ma ci vuole tempo a sviluppare una test suite" non hanno più motivo per rinunciare ad dotazione di test funzionanti.