Attualmente sto sviluppando un'applicazione web basata su Spring, in cui quasi ogni operazione crea / aggiorna / elimina qualcosa nel database. La logica in gran parte riguarda il controllo delle condizioni in modo da poter creare / aggiornare i record nel database o no.
Il motivo per cui voglio provare il test unitario è che spesso incontriamo errori di regressione quando vengono richieste modifiche o refactoring. La maggior parte dei bug proviene da modifiche al database, quando non rifletto pienamente tali modifiche nel codice. Ho un po 'di esperienza nello sviluppo web ora, ma sembra che non sia abbastanza per fermarli.
Il mio controller / servizio non è in realtà troppo complesso. Prendo solo l'oggetto vincolante inviato da HttpRequest, controlla la condizione & registrare in DB. A volte il sistema deve leggere il database, estrarre alcuni record e amp; manipolarli, quindi aggiorna altri record. Gran parte dello sforzo di codifica si trova anche sull'interfaccia (HTML / CSS / Javascript).
Sto esaminando il test di unità e ho sentito che quando si tratta di operazioni sul database, non è più un test di unità, poiché il test sarà lento. È vero? In modo che se il mio progetto è pesantemente funzionante con il database, non dovrei usare unit test?
Ho anche sentito parlare di DBUnit & alcuni database in memoria che possono accelerare il test. Dovrei usarli? E come posso scrivere un buon test unitario per il funzionamento del database?