JohnnyLAmpAz / smartmag

Repo del progetto per il corso di Ingegneria del Software
4 stars 0 forks source link

Testing - struttura di base #37

Closed JohnnyLAmpAz closed 7 months ago

JohnnyLAmpAz commented 7 months ago

Testing

Ho implementato metodi sul Db per eliminarne i record e il file. Ho poi utilizzato questi ultimi, insieme al BaseModel.setDifferentDbPath(), per definire una classe astratta per i test BaseTest che fa in modo di preparare un DB vuoto apposito per ogni caso di test e di cancellarne il file dopo averli eseguiti tutti.

In questo modo basta creare le classi contenenti i casi test come sottoclassi di BaseTest, avendo così la certezza che ogni caso di test lavori con un database vuoto. Si andrà quindi a creare tutti i vari record che servono al caso di test (attraverso i modelli) e a fare i controlli opportuni, senza preoccuparsi dell'ordine in cui i casi di test verranno eseguiti. Questo garantirà una maggior affidabilità ed efficacia dei test.

Ho creato come demo un caso di test molto semplice che riguarda il login degli utenti. Sul mio pc funziona; se la GitHub action non fallisce nel build (che esegue i test) siamo a cavallo 💪 .