2017-01-05 14 views
0
私はeasymock-powermockを使用して、メソッドチェーンの下にモックとしたい

easymock-powermockを使って静的メソッド連鎖呼び出しをモックする方法は?

OtherClass oc = SampleClass.getInstance().getSampleMethod(new StringReader("ABC");

のgetInstance()は、シングルトンメソッドです。 getSampleMethod()はパブリックメソッドです。

私はexpect/andReturnをnullにすることを試みます。

答えて

1

期待値をメソッドチェーン全体に一度に設定するかどうかはわかりませんが、それはどのように動作するかはわかりません。それぞれのメソッド呼び出しごとに期待値を設定する必要があります。

あなたのケースでは、最初のメソッド呼び出しは静的呼び出しであるため、powermockを使用して期待値を設定し、そのための模擬インスタンスを返す必要があります。次に、2番目のメソッド呼び出しの期待値を追加する必要があります。私は下のサンプルコードを与えましたあなたのケースで動作するかどうか確認してください。

@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)が1つあることが望ましいです。 –

+0

提案ありがとう@StephenRauch 私は私の応答を編集しました:) – Sravya

関連する問題