Вам нужен объект Method и объект Class.Согласно вашему комментарию, Mockito не может издеваться над методом, поэтому вам нужен настоящий.Я не проверял это, но я верю, что это сработает.Вместо:
when(mockContext.getMethod().getName()).thenReturn("someMethod");
when(mockContext.getMethod().getDeclaringClass().getName()).thenReturn("someClass");
Вам нужно:
// any method will do, but here is an example of how to get one.
Method testMethod = this.getClass().getMethod("logCallTest");
when(mockContext.getMethod()).thenReturn(testMethod);
Очевидно, getName()
больше не будет возвращать "someMethod", а getDeclaringClass().getName()
вернет имя этого тестового классапример), но хотя вы не можете выбрать, что они возвращают, то, что они возвращают, все еще детерминировано, поэтому вы должны иметь возможность проверить все, что вам нужно.(Конечно, если вам нужно было шпионить или убедиться, что был сделан вызов для самого объекта Method, вы все равно застряли.)