Come eseguire i test unitari per accertarsi che la stored procedure stia eliminando una riga dal database?

7

Sono nuovo nel test delle unità e ho bisogno di aiuto con quanto segue.

Ho creato un piccolo progetto per aiutarmi a imparare come realizzare i Test unitari. La funzionalità per uno dei moduli nella mia applicazione elimina un utente dalla tabella Utente (e altre righe nelle tabelle di mapping).

Attualmente, il test unitario che ho creato per testare questo imposta gli oggetti richiesti e poi chiama il metodo delle regole di business (passando l'id utente) che chiama il metodo di accesso ai dati per eseguire la stored procedure che cancella le righe nel tabelle.

È questo il metodo corretto per verificare se qualcosa viene cancellato con successo? Nel caso in cui il test unitario / il metodo di impostazione inserisca prima alcuni dati di test che il test dell'unità quindi cancella?

    
posta Theomax 11.07.2012 - 16:15
fonte

3 risposte

8

IMHO se stai appena iniziando a imparare i test delle unità, per ora è meglio lasciare i database fuori dall'immagine. I dati in un DB sono più difficili da testare, infatti quando esegui il test del codice che effettua chiamate dirette a un DB, non è più un test di unità ma test di integrazione .

È possibile unità di codice di test manipolando un DB, ma richiede più sforzo e strumenti, inclusi framework aggiuntivi, come DBUnit nel mondo Java -, interfacce, mock ecc. che sono argomenti più avanzati.

    
risposta data 11.07.2012 - 16:21
fonte
6

Sarà molto più facile scrivere test unitari per le stored procedure SQL in SQL. Dai un'occhiata a tSQLt . Evitare di ripetere il test delle stored procedure nei test dell'unità C #; prendi il consiglio di cricket e prendi in giro il database per testare il codice C #.

    
risposta data 11.07.2012 - 16:34
fonte
2

si dovrebbe prendere in giro il database (astratto) durante il test del modulo

essenzialmente fornendo un'implementazione fittizia che fa il minimo necessario per completare i test

in questo modo quando si chiama submit sul modulo è possibile quindi vedere se deleteUser nell'accesso ai dati viene chiamato

    
risposta data 11.07.2012 - 16:27
fonte

Leggi altre domande sui tag