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