Private accessors are really helpful for extensive unit testing. But they do have their limitations. I wrote a generic protected method having a declaration like this: protected ReturnType MyMethod<T>(OneClass, DateTime, DateTime, Func<OtherClass, T>, out List<T>); Calling this method via an accessor in my unit test, I ran into an exception …