Как легко выставить статический метод в Java?
Я использую Spring 2.5 и JUnit 4.4
@Service
public class SomeServiceImpl implements SomeService {
public Object doSomething() {
Logger.getLogger(this.class); //a static method invoked.
// ...
}
}
Я не контролирую статический метод, который должен вызвать мой сервис, поэтому я не могу его реорганизовать, чтобы его можно было тестировать с большей степенью детализации. В качестве примера я использовал Log4J Logger, но реальный статический метод схож. Это не вариант изменения статического метода.
Выполнение работы Grails, я привык использовать что-то вроде:
def mockedControl = mockFor(Logger)
mockControl.demand.static.getLogger{Class clazz-> … }
…
mockControl.verify()
Как мне сделать что-то подобное в Java?