整理Mockito结合ArgumentCaptor捕获多次调用的方法的参数
今天在对业务代码进行开发时,发现需要捕获多次调用的方法的参数,验证参数传递的正确性,这里对获取方法进行总结。
首先,模拟一个简单的测试场景,有一个对外提供服务的类:
@Component
public class CaptorLearning {
private DalService dalService;
@Autowired
public CaptorLearning(DalService dalService) {
this.dalService = dalService;
}
public int getResult(int num1, int num2, int num3) {
int result1 = dalService.doHandle(num1, num2);
int result2 = dalService.doHandle(num1, num3);
return result1 + result2;
}
}
有一个内部的业务处理类:
@Component
public class DalService {
public int doHandle(int num1, int num2) {
return num1 + num2;
}
}
这里要对CaptorLearning进行单元测试覆盖,因此需要判断dalService两次调用了doHandle方法,并获取相应的参数,判断是否参数调用正确。
首先是两次调用,可以利用Mockito
提供的verify
方法,来判断调用次数,代码如下:
@Test
public void testByVerify() {
captorLearning.getResult(num1, num2, num3)