Ho una classe di base estesa a tutti i test del mio controller. Questo è impostato in modo che ogni unità di test possa avere il proprio Fixture da cui caricare.Come verificare in Play Framework se un test di unità ha eseguito un inserimento/aggiornamento/eliminazione di un database
Quindi l'override di @Before verificherà quale è l'apparecchiatura richiesta per il test, lo carica e quindi avvia il test.
Il problema qui è che questo ricarica l'apparecchio ogni volta. Anche se il metodo ha fatto solo una selezione sul database, senza modificare nulla.
Il database di memoria interna utilizzato da Play Framework è il database H2. Mi chiedo se ci sia un modo per controllare dopo che è stato fatto un test unitario, se c'è stata una modifica al database e in caso contrario, saltare il ricaricamento degli stessi dati.
Ho provato identity_scope, restituisce null indipendentemente da cosa.
Non so se v'è la possibilità di raggiungere con il solo Junit di ma c'è uno strumento in cui è possibile gestire facilmente questo caricamenti. La sua dbunit e puoi facilmente usarla in gioco. Per quanto ne so, lo scopo principale di Junit è separare i test l'uno dall'altro. ma non sto dicendo che non è possibile Forse potresti provare con @BeforeClass con la combinazione con la suite di test. –
L'ho cercato e sembra che dovrei rifattorizzare tutti i miei test unitari esistenti per questo. Grazie per il suggerimento, ma non posso dedicare tempo a questo. – KdgDev
Hai considerato di passare dal database di memoria al vero database fisico? –