Di recente ho notato che l'aggiunta di [TestInitialize] a un metodo protetto in un assembly .NET non è stata rispettata, ma se ho reso pubblico il metodo è stato chiamato dal runner di test unità (Resharper in questo caso). L'ho notato diverse volte in passato con metodi di prova.
Tecnicamente parlando, è altrettanto facile riflettere su un metodo privato come un metodo pubblico. È un dato di fatto, la riflessione è un metodo impiegato per testare metodi privati.
Quindi perché devo rendere pubblici tutti i miei metodi di test unitari?
setAccessible
quale può essere bloccato da un SecurityManager personalizzato