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?