之前用了不少Jmockit写用例,多数还好,但是之前出现了一些问题,主要的问题是一些用例,使用eclipse运行是ok的,但是用mvn命令进行测试却无法通过,错误的大致信息如下:
mockit.internal.expectations.invocation.MissingInvocation:
Missing 1 invocation to:
com.xxx.RegionService#getByRegionId(0)
on mock instance: com.xxx.RegionService.$Impl_RegionService@45430a27
at com.xxx.core.xxx.SomeTest.testXXX(SomeTest.java:38)
是一个MissingInvocation,意思很简单,就是本来应该有一次调用,但实际上没有执行。信息不难理解,麻烦的是2种环境的测试结果不一致。方法的声明是这样的:
Region getByRegionId(Integer regionId);
我的测试代码时这样写的:
new Expectations(){
{
regionService.getByRegionId(3);
times = 1;
result = new RegionDTO(3,"县名称");
}
};
场景是这样的:regionService是个外部的dubbo服务,CUT里面,我需要根据地区的ID获取地区名称,会调用regionService.getByRegionId。 我在测试的时候使用Expectations来mock了getByRegionId的返回值。很简单的测试,但是测试结果在mvn命令行运行的时候始终无法执行通过。网上搜索了半天没什么结果。在之前我都用Mockito的mo