Per quanto riguarda il testing è stata utilizzata la libreria ScalaTest, uno dei tool più popolari per il testing in Scala. I vantaggi che abbiamo riscontrato usando questa libreria sono la semplicità di utilizzo e la leggibilità del codice che viene prodotto. Inoltre, i Matchers hanno reso possibile un ulteriore miglioramento nella leggibilità dei test grazie a asserzioni come shouldBe e should.
Per la scrittura dei test ci siamo ispirati all’approccio Test Driven Development (TDD). L’approccio non è stato sempre seguito in modo rigido, ma si è cercato sempre di scrivere i test contemporaneamente all’implementazione.
Sono state adottate diverse contromisure per essere sicuri che l’intera applicazione fosse ben testata e stabile:
main e develop che permette commit solo attraverso pull request necessariamente approvate da uno sviluppatore e che, al tempo stesso, passino tutti i test presenti (ottenuto grazie ad alle GitHub actions).Per quanto riguarda la coverage dell’applicazione si è cercato di dare enfasi al testing delle classi del model. Il controller e la view sono state testate attraverso test manuali e grafici, questo perchè i test servivano principalmente per feedback grafici.
Qui è riportato il risultato di sbt clean coverage test.
