Recentemente 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 unit test runner (Resharper in questo caso). L'ho notato diverse volte in passato con i metodi di test.
Tecnicamente parlando, è altrettanto facile riflettere su un metodo privato come metodo pubblico. In effetti, la riflessione è un metodo utilizzato per testare i metodi privati.
Quindi perché devo rendere pubblici tutti i miei metodi di test delle unità?