Как упомянул @GhostCat, использование Mockito Spies было бы хорошим решением.
В идеале, вам не нужно было бы имитировать метод экземпляра для тестирования другого метода экземпляра в классе. Если вам нужно смоделировать этот метод экземпляра, возможно, он не принадлежит к тому же классу, что и другой метод экземпляра (взгляните на этот другой SO post ). Если это так, вы можете вытащить этот метод экземпляра в его собственный класс, а затем положиться на экземпляр этого класса (переданный конструктору) - тогда вы можете просто смоделировать класс с этим методом экземпляра при создании вашего класса в тест.
Или, возможно, вместо того, чтобы изолировать m1 и запустить модульный тест против m1, было бы лучше просто выполнить тест для класса, который проверяет поведение всего класса, а не только поведение метода с одним экземпляром.
В качестве альтернативы, если два метода экземпляра действительно принадлежат к одному и тому же классу, и абсолютно важно, чтобы вы тестировали методы по отдельности, а вы не использовали фальшивую среду. Вы могли бы создать подкласс класса A, который переопределяет m2 и возвращает фиктивный результат для того, что m2 обычно возвращает. Затем вы можете протестировать этот подкласс и успешно выполнить модульный тест m1.
Редактировать : Если m2 является более или менее вспомогательным методом, который на самом деле не требует отдельного тестирования, я бы сделал его закрытым, а затем вообще не проверял бы его, за исключением косвенного публичные методы класса.