2017-01-05 550 views

回答

1

我不確定您是否將整個方法的預期一次設置爲整個方法鏈,但這不是它的工作原理。您必須分別設置每個方法調用的期望值。

在你的情況,作爲第一個方法調用是一個靜態調用,你應該使用powermock並設置期望並返回它的模擬實例。然後你應該添加第二個方法調用的期望值。我已經在下面給出了示例代碼,請檢查它是否適用於您的案例。

@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

當給出答案時,最好給出[關於爲什麼你的答案的一些解釋](http://stackoverflow.com/help/how-to-answer)是一個答案。 –

+0

感謝您的建議@StephenRauch 我已編輯我的迴應:) – Sravya

相關問題