Как мне легко смоделировать статический метод в 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?