La risposta sta prendendo in giro
Tuttavia il modo per fare questo ho trovato è il seguente.
Separare il DAL in 2 livelli. La parte inferiore esegue semplicemente la lettura e la scrittura atomica nei database: tutti questi oggetti implementano un insieme di interfacce IReadFromDB e IWriteToDB.
Quindi è possibile creare la logica di business di lettura e scrittura in un livello DAL più alto, ma piuttosto fare riferimento agli oggetti che leggeranno e scrivono al database fanno riferimento alle interfacce e utilizzano le proprietà per poter sostituire la funzionalità. Tendo a includere gli oggetti funzionali desiderati nei costruttori in modo che le cose funzionino "fuori dagli schemi", per così dire.
Questo lo renderà un gioco da ragazzi per "scambiare" la funzionalità e quindi per testare unitamente la logica di business.
Per quanto riguarda il test del DB, leggi e scrive ... Non ho trovato un modo che non implichi il lavoro. Di solito uso una stringa di connessione diversa per una copia del database e quindi scrivo il codice di generazione e pulizia dei dati per i test delle unità per lasciare lo stato del db lo stesso di prima e dopo.
Sì, è una perdita di tempo ... tuttavia non rischia di alienare un cliente. Dipende dalle tue priorità.
Qualcun altro ha menzionato il test delle prestazioni. Non lo considererei parte di un test unitario. Solitamente lo faccio con un'imbracatura di test in combinazione con il codice di debug semplicemente perché l'esecuzione di piccole parti è spesso fuorviante - quando si passa all'immagine grande, le parti che sono effettivamente problemi di involucro non sono spesso le parti che il test localizzato avrebbe contrassegnato nella mia esperienza .
fonte
2009-07-10 10:38:36
Penso che i test di interazione funzionerebbero meglio qui – IAdapter
Dato che c'è così tanto interesse in un argomento così semplice e comune, suggerirei che ci sarebbe un enorme mercato per un case study o un libro su questo argomento. Colpisce quasi tutti gli sviluppatori .NET, eppure le informazioni sono lacunose e non provate.Sappiamo quali sono le migliori pratiche, ma in questo scenario come possono essere praticamente implementati i test unitari/beffardi? –