The point is: testing if internal private methods are called ... is an anti-pattern when writing unit tests!
You do not test internal implementation details. It shouldn't matter to your tests how some "externally facing" method does what it does. In other words, you have the following choices:
- If you are calling methods on "fields" of your class under test, use dependency injection to insert mocked versions of the corresponding objects. Then you can verify that the expected methods are called.
- Check observable behavior. Meaning: call your "method under test"; and check the values returned such methods; or use other getters to inspect the internal state of your class after you made a call.
In other words: each of your "public" methods should have a clear, defined meaning. So, if you call them, they will have a defined effect; and this effect should be observed/asserted on.
It could well be that your current design really support these ideas. Then, seriously: consider stepping back and changing your design. Because: you created something that is not reasonably testable. Then chances are ... that your design has other problems, too.