Usually you just don't test or mock the private & protected methods directy. What you want to test is the public API of your class. Everything else is an implementation detail for your class and should not "break" your tests if you change it. That also helps you when you notice that you "can't get 100% code coverage" because you might have code in your class that you can't execute by calling the p