As a parent would say to his child: DON'T EXPOSE YOUR ACCEPTS!
You do not need to expose your private methods to test them. You can get 100 PERCENT test coverage of your class, including those private methods without exposing them.
The rubbing is that some people believe that the โunitโ in unit testing is a function when it really is a class.
For example: I have a class with 1 public method: bool CheckIfPalindrome (string wordToCheck).
Inside, I have private methods for checking the length of a ToCheck word, if it's empty, if it's empty, bla bla bla.
But as a tester, I donโt need to know or care about how I the developer organized (or will organize) the internal code. I am testing an implementation of an interface.
'Given that the word "Mike" when CheckIfPalindronme is called, it should return false "
'Given that the word "Mom", when CheckIfPalindronme is called, it should return true'
'Given that the word "" when CheckIfPalindronme is called, it should return false'
'Given that the word is null when CheckIfPalindronme is called, it should throw an error "
If I consider all possible inputs and expected results, I will test your private functions.
This is the basis of TDD / BDD, without this TDD will not be possible, because we will have to wait and see how you decide to organize your code before we can write our test.
TDD / BDD says you write your tests before you write your code (and it works great, it very quickly identifies flaws in requirements / design)