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

Ответы на вопрос(8)

Ваш ответ на вопрос