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.