Sono abbastanza un principiante nel test del codice, ed ero un pazzo assert prima. Una cosa che mi preoccupa nei test di unità è che spesso è necessario creare public (o almeno internal ) campi che sarebbero stati altrimenti private , per annullare un- readonly , creare private metodi protected virtual invece, ecc ...
Recentemente ho scoperto che puoi evitarlo usando cose come PrivateObject classe per accedere a qualsiasi cosa in un oggetto tramite riflessione. Ma questo rende i tuoi test meno mantenibili (le cose falliscono nell'esecuzione piuttosto che nel tempo di compilazione, saranno interrotte da una semplice rinomina, è più difficile eseguire il debug ...). Qual è la tua opinione su questo ? Quali sono le migliori pratiche nelle prove unitarie relative alla limitazione dell'accesso?
modifica: considera, ad esempio, che hai una classe con una cache in un file su disco, e nei tuoi test vuoi invece scrivere in memoria.