[英]How to write test case for this void method for if condition
public void setRefundIdForPrepaid(RefundReturnRequest refundReturnRequest) {
if(StringUtils.isBlank (refundReturnRequest.getRefundRequest().getRefundId())) {
refundReturnRequest.getRefundRequest().setRefundId (Integer.toString(ThreadLocalRandom.current().nextInt(999999999)));
}
}
您可以在方法执行后测试RefundReturnRequest refundReturnRequest
的refundReturnRequest。
@Test
void testSetRefundIdForPrepaid(){
//build param
RefundReturnRequest refundReturnRequest = new RefundReturnRequest();
//executetd
service.setRefundIdForPrepaid(refundReturnRequest);
//test result
assertThat(refundReturnRequest.getRefundRequest().getRefundId()).isEqualTo(xxx);
}
您可以将 RefundReturnRequest 设置为 Spy 并验证该集合是否已被调用。 如果你想进一步测试它,你可以传递一个 Argument Captor 并检查随机数是否在某个范围内。 但这是一种我认为在测试中没有多大价值的方法。 如果您只想为 If 逻辑编写 2 个测试用例,只需验证 set 方法已被调用,而另一个测试尚未被调用。
因此,您需要一个模拟的refundReturnRequest,它在调用 getRefundRequest 后返回一个 Spy RefundRequest。 并验证二传手。
@Test
void TestsetRefundIdForPrepaid(){
//test case
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.