Как легко выкачать статический метод в Java?Как я могу легко измотать статический метод в Java (jUnit4)
Я использую 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?
Можете ли вы изменить реализацию SomeServiceImpl? –
Ничего, Джон Скит только что опубликовал то, что думал. Я горжусь! (думая, как Джон Скит хе-хе) –
Да, я могу изменить SomeServiceImpl, но зачем мне это нужно? Почему дополнительная косвенность? –