Sono piuttosto un principiante nel test del codice, ed era una assert
puttana prima. Una cosa che mi preoccupa nei test unitari è che spesso è necessario che tu faccia public
(o almeno internal
) campi che private
altrimenti sarebbero stati , per sbloccarli readonly
, invece fare private
metodi protected virtual
, ecc ...
Recentemente ho scoperto che puoi evitarlo usando cose come la classe PrivateObject per accedere a qualsiasi cosa in un oggetto tramite la riflessione. Ma questo rende i tuoi test meno gestibili (le cose falliranno durante l'esecuzione piuttosto che in fase di compilazione, verrà interrotta da una semplice ridenominazione, è più difficile eseguire il debug ...). Qual è la tua opinione su questo ? Quali sono le migliori pratiche nei test unitari riguardanti le restrizioni di 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.