Ich habe kürzlich festgestellt, dass das Hinzufügen von [TestInitialize] zu einer geschützten Methode in einer .NET-Assembly nicht berücksichtigt wurde, aber wenn ich die Methode öffentlich gemacht habe, wurde sie vom Unit-Test-Runner (in diesem Fall Resharper) aufgerufen. Ich habe dies in der Vergangenheit mehrfach bei Testmethoden bemerkt.
Technisch gesehen ist es genauso einfach, über eine private Methode nachzudenken wie über eine öffentliche Methode. Reflexion ist in der Tat eine Methode, mit der private Methoden einem Komponententest unterzogen werden.
Warum muss ich also alle meine Unit-Test-Methoden veröffentlichen?
setAccessible
dem durch einige benutzerdefinierte Security blockiert werden kann