2017-01-05 4 views

Antwort

1

Ich bin nicht sicher, ob Sie die Erwartungen sofort auf die gesamte Methodenkette festlegen, aber so funktioniert es nicht. Sie müssen die Erwartung für jeden Methodenaufruf separat festlegen.

In Ihrem Fall, als erster Methodenaufruf ist ein statischer Aufruf, sollten Sie powermock verwenden und die Erwartung festlegen und die mocked-Instanz dafür zurückgeben. Dann sollten Sie die Erwartung für den zweiten Methodenaufruf hinzufügen. Ich habe den folgenden Beispielcode angegeben. Bitte prüfen Sie, ob es in Ihrem Fall funktioniert.

@RunWith(PowerMockRunner.class) 
@PrepareForTest({SampleClass.class}) 
public class SimpleClassTest{ 
    @Test 
    public void test(){ 
     PowerMock.mockStatic(SampleClass.class); 
     SampleClass sampleClassInstance = EasyMock.createMock(SampleClass); 
     EasyMock.expect(SampleClass.getInstance).andReturn(sampleClassInstance); 
     EasyMock.expect(sampleClassInstance.getSampleMethod(/*required parameter goes here*/).andReturn(/*Otherclass instance goes here*/); 
     PowerMock.replayAll(); 
     EasyMock.replay(sampleClassInstance); 
    } 

} 
+1

Wenn eine Antwort zu geben ist es bevorzugt, um [eine Erklärung, warum Ihre Antwort] (http://stackoverflow.com/help/how-to-answer) ist derjenige. –

+0

Danke für den Vorschlag @StephenRauch Ich habe meine Antwort bearbeitet :) – Sravya

Verwandte Themen