Ho poca esperienza con i test unitari, ma al progetto su cui stiamo lavorando in questo momento abbiamo deciso di fare test unitari. Il progetto è un'applicazione WPF / Entity Framework e la parte su cui mi sto confondendo è una funzione di filtro.
Il nostro universo di entità è così: ci sono prodotti, valutazioni e collezioni.
Valutazione 1 - n Prodotto
Raccolta n - Valutazione
Collezione n - m prodotto
Ora la funzione filtro in questione è chiamata "in collezione" e la logica è la seguente: Includi il prodotto se ha una raccolta in cui Collection.Active == true, o se il prodotto ha una valutazione che a sua volta ha una raccolta.
Quindi, quando l'unità sta testando questo, sto cercando di scoprire i diversi possibili casi d'angolo, e faccio asserzioni circa il fatto che siano inclusi nell'elenco filtrato o meno. Prodotti che hanno una collezione attiva, Prodotti che non hanno una collezione attiva ma che ha una valutazione che ha una collezione e così via.
Il problema è che lavorare su questi casi angusti è molto più complicato rispetto alla scrittura di una semplice query linq-to-entity, e sembra che la probabilità di commettere un errore nel test sia molto più alta di un errore nell'implementazione del filtro.
Come gestiresti queste situazioni? Non sembra insolito, specialmente dove ci sono strumenti che ti permettono di scrivere la logica in un modo semplice. È possibile beneficiare dei test unitari qui? Come?