Devo testare tutti i metodi setter e getter ?

Ieri sera mi sono imbattuto in un post che parlava di Unit Test in cui veniva data risposta alla domanda: "Should I test all getters & setters?" La risposta dell'autore del post era no. Ripensandoci mi sono chiesto perchè io che scrivo molti Unit Test non mi sono mai preoccupato molto di questo fatto.

Alle fine ho realizzato che se mi pongo questo problema significa che prima scrivo il codice e poi scrivo il test. Se invece seguo un approccio TDD procedo in questo modo:

scrivo un test per il getter della propietà che sto testando

creo la proprietà vera e propria in sola lettura e mi assicuro che il test passi

scrivo un altro test per il setter della propietà che sto testando

implemento il setter per la proprietà che sto testando e mi assicuro che il test passi

 

Così facendo non scrivo mai del codice senza avere almeno un test che ne verifica la correttezza.

Per completare l'opera posso implementare il controllo del code coverage nel mio build server ma questa è un'altra storia, o meglio un'altro post.

Mock framework in PEX

Il nuovo framework di Unit Test che potrebbe vedere la luce insieme ad Orcas, la prossima versione di Visual Studio, dovrebbe contenere anche una funzionalità di mock objects. La notizia viene da questo post in cui è presente un piccolo esempio di cosa potremmo fare con PEX per usare oggetti "mokkati". Come per altri framwork sarà possibile creare mock objects di interfaccie e metodi virtual di classi non sealed