作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
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”是一个接口(interface)。我需要模拟这一行 TxnResp txnResp = service.txn(req1 , req2);
我的测试类。因为调用 txn 会从 Web 服务返回一些值,这些值在下一行中指定。
txnResp
包含以下值 storeNo、retailerId 和密码。它有自己的 bean 类,因此我们可以设置诸如 txnResp.setStoreId(1);
有人可以帮我模拟上述接口(interface)“txn”并将值返回给txnResp
吗?
过去 5 个小时我都被困在其中。任何帮助将不胜感激。
最佳答案
在我看来,简单的 Mockito
对于您的情况就足够了。
如果 service
是注入(inject)的依赖项(通过构造函数,即 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...
}
}
关于java - 如何在 Java 中使用 PowerMockito 模拟接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44653717/
我是一名优秀的程序员,十分优秀!