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进行模拟。

“ txn”是一个接口。我需要在测试类中模拟此行TxnResp txnResp = service.txn(req1 , req2);。因为调用txn从Web服务返回一些值,这些值在下一行中指定。

txnResp包含以下值storeNo,retailerId和password。它有自己的bean类,因此我们可以设置txnResp.setStoreId(1);之类的值。

谁能帮助我模拟上面的接口“ txn”并将值返回到txnResp

我被困在最后5个小时。任何帮助将不胜感激。

最佳答案

我认为普通Mockito在您的情况下就足够了。

如果service是注入的依赖项(通过构造函数,即setter),则可以尝试以下操作:

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...
   }
}

09-11 19:29