Se sto avendo Data Access Layer (nHibernate) ad esempio una classe denominata UserProvider e una classe BusinessBlog UserBl, dovrei entrambi testare i loro metodi SaveUser o GetUserById, o qualsiasi altro metodo pubblico nel livello DA chiamato BL strato. È una ridondanza o una pratica comune da fare?Devo I Unit Test Data Access Layer? È una buona pratica e come si fa?
È comune al livello di unità di test DA o appartiene al dominio di test di integrazione? È meglio avere un database di test o creare dati di database durante il test?
Qualsiasi aiuto è apprezzato.
Questo è molto simile alla mia vista sul test DAL. Se c'è qualche logica lì e vuoi essere sicuro che funzioni, scrivi i test unitari per questo. Nel complesso, l'utilizzo ottimale del tempo e dell'impegno potrebbe essere l'impostazione di test di integrazione su un database reale con dati di test noti. –
E SQL non contiene la logica? –
@Pascal - beh, in genere il mio SQL no, no, ma non sto dicendo che non dovresti testarlo. Ma non lo testerei come parte del DAL, sarebbe un set separato di test unitari (probabilmente usando uno strumento diverso, forse DBFit), o parte dei test di integrazione. Come ho già detto, non penso che i test unitari "in codice" debbano toccare il database a causa della complessità della configurazione, dei potenziali problemi ambientali (richiede DB o rete locale) e della riduzione della velocità. –