Como posso facilmente zombar de um método estático em Java (jUnit4)

Como posso facilmente zombar de um método estático em Java?

Estou usando o Spring 2.5 e o JUnit 4.4

@Service
public class SomeServiceImpl implements SomeService {

    public Object doSomething() {
        Logger.getLogger(this.class); //a static method invoked.
        // ...
    }
}

Eu não controlo o método estático que meu serviço precisa invocar para que eunão podes refatorize-o para ser mais testável em unidade. Eu usei oLog4J Logger como exemplo, mas o método estático real é semelhante.Não é uma opção para alterar o método estático.

Fazendo o trabalho Grails, estou acostumado a usar algo como:

def mockedControl = mockFor(Logger)
mockControl.demand.static.getLogger{Class clazz-> … }
…
mockControl.verify()

Como faço algo semelhante em Java?

questionAnswers(8)

yourAnswerToTheQuestion