top of page

Oltre 1000 test per un gioco da hobby: uno spreco?

Immagine del redattore: Marcel Dütscher
Marcel Dütscher
2 lug
Tempo di lettura: 2 min

Il nostro progetto ha ormai ben oltre mille test automatici: circa 990 lato server, circa 120 nel client Unity. Per un progetto di famiglia sembra eccessivo. È il contrario, ed ecco perché.


I test sono il nostro secondo sviluppatore. In un progetto solitario non c'è nessuno che nella code review dica: «Aspetta, così si rompe il crafting.» I test sono quel collega. Ogni meccanica di gioco (ricette, ossigeno, fame, comportamento delle creature, password dei mondi) ha test che girano a ogni modifica. Rifattorizzare senza paura è il vero vantaggio.


Abbastanza veloci da non dare fastidio. I test che durano un quarto d'ora non li esegue nessuno. Per questo il nostro controllo CI è a due stadi: la verifica della pull request gira in circa tre minuti con i test veloci; la suite completa, lenta, parte dopo. Così il ciclo di sviluppo resta scattante senza perdere copertura.


Testare Unity è un argomento a parte. La logica del client è difficile da testare dentro un motore in esecuzione. Il nostro trucco: la logica centrale del client vive in una libreria a sé che gira senza Unity, e la testiamo in modalità headless come codice normale. Solo ciò che richiede davvero il motore gira come test EditMode/PlayMode.


I warning sono errori. La nostra CI compila con «warnaserror»: ogni warning del compilatore rompe la build. Sembra pedante, ma previene il cimitero dei warning in cui prima o poi affoga l'unico warning importante.


Il bilancio onesto: scrivere test costa forse un quinto del tempo di sviluppo. Ma ogni funzione corretta resta corretta, e per un progetto che prende vita la sera dopo il lavoro nulla vale di più della certezza che la funzione del fine settimana non abbia rovinato quella del martedì.

Post recenti

Mostra tutti

Commenti


Non puoi più commentare questo post. Contatta il proprietario del sito per avere più informazioni.
bottom of page