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