Jak mogę łatwo wykluczyć metodę statyczną w Javie (jUnit4)

Jak łatwo wykreślić metodę statyczną w Javie?

Używam Spring 2.5 i JUnit 4.4

@Service
public class SomeServiceImpl implements SomeService {

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

Nie kontroluję statycznej metody, którą moja usługa musi wywołać, więc janie może refaktoryzuj, aby był bardziej testowalny. UżyłemLog4J Logger jako przykład, ale prawdziwa metoda statyczna jest podobna.Nie ma możliwości zmiany metody statycznej.

Robiąc Grails, jestem przyzwyczajony do używania czegoś takiego:

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

Jak zrobić coś podobnego w Javie?

questionAnswers(8)

yourAnswerToTheQuestion