Mocking the class under test with private method calls
You can't.

You need to ask yourself why it is you want to prevent executing Bar during testing.  If it is because you are worried about over-covering Bar during testing, stop worrying.  If it is because your real Bar implementation is long-running, then you probably need to inject another dependency into your class, or re-factor some code into a separate helper class which can then be injected.

As long as your Foo implementation needs to call Bar, your unit tests for Foo ultimately need to as well.  As long as Foo ultimately calls Bar, you cannot fully test Foo without executing Bar.  You shouldn't rely on it calling Bar, but you cannot prevent it from calling Bar in your tests without intentionally crippling your test coverage.