2017-06-20 17 views
1
req1(an object of request type 1) 
req2(an object of request type 2) 


    class response{ 
     public TxnResp txnResp(){ 
      TxnResp txnResp = service.txn(req1 , req2); 
      return txnResp; 
     } 
    } 

私のjunitテストでは、模擬用にPowermockitoを使用しています。PowerMockitoを使ってJavaでPowerMockitoをモックする方法

"txn"はインターフェイスです。私はこの行を模擬する必要がありますTxnResp txnResp = service.txn(req1 , req2);私のテストクラス。 txnを呼び出すと、次の行で指定されているWebサービスから値が返されているためです。

txnRespには、次の値storeNo、retailerIdおよびpasswordが含まれています。それは独自のBeanクラスを持っていますので、値を設定することができますtxnResp.setStoreId(1);

上記のインターフェイス「txn」と戻り値をtxnRespに偽装してください。

私はその中で最後の5時間詰まっています。どんな助力も高く評価されます。

+0

この平均は何をん:*「TXNが」*インターフェースのですか? 'txn'は明らかに' service'の方法です。 'Txn'というインターフェースがあり、' txn'はそのインターフェースのメソッド*であることを意味しますか? –

+0

はい!txnはそのインターフェースのメソッドです。 – Miller

答えて

2

私の意見では、平文Mockitoで十分です。

serviceは(コンストラクタを経由して、セッターすなわち)を注入された依存関係である場合は、次の何かを試みることができる:

public class ResponseTest{ 

    @InjectMocks 
    private Response response; 

    @Mock 
    private Service serviceMock; 

    @Before 
    public void init(){ 
     MockitoAnnotations.initMocks(this); 
    } 

    @Test 
    public void test(){ 
     // Arrange 
     TxnResp txnResp = new TxnResp(...); 

     Mockito.doReturn(txnResp).when(serviceMock).txn(
      Mockito.any(ReqType1.class), Mockito.any(ReqType2.class)); 

     // Act and assert...  
    } 
} 
+0

条件のときに "serviceMock"が何の中に入っているのか分かりますか? – Miller

+0

そのサービスのmockito管理されたインスタンス –

+0

PowerMockito.spy(Response.class); PowerMockito.doReturn(txnResp).when(Service.class、 "txn"、Matchers.anyObject()、Matchers.anyObject()); これは私がテストクラスでやったことですが、それは例外ではありません。 – Miller

関連する問題