I thought I was aware of when the private keyword should be used. Encapsulation is the reason for this and as such I have made the effort to make all methods private where possible.
I have just written a post on testing and was told that it is a bad idea to be testing with reflection on my private methods and it is bad code design. Why is this the case, the fact my key code is hidden / encapsulated is a good thing and should that not be tested because that is really the crux of what my public facing code relies on?