今天项目进行单元测试,第一次使用jmokit框架,出现了很多问题,下面记录一下。
首先,我使用IDEA进行junit测试,需要下载两个插件(junit和junit generator)配置一下就可以用了。
生成单元测试类后,需要编写测试方法。测试方法要注意以下几点:
1、代码每一行都要执行,所以实际代码每行都要走的,不要遗漏。
2、我们只需要将需要mock的代码(需要连服务器的代码,比如service,dao)重写,后面result重新赋值就好了。
正常类中的各种方法,不需要重新,如需要赋值,可直接赋值。
3、mock代码放到new Expectations中,最后写上函数调用语句:
impl.addSDevice(1, "mDid", "devQrCode");这样就能直接执行上面的测试方法。
4、遇到多次调用同名方法时,可以多次return返回值,用以区别。不然测试程序报错,因为每次都执行的是第一次
调用,第二次调用语句变得不可达。语法如下:
deviceDao.getDevInfoByDid(anyString, anyInt);
result = deviceInfo;
result = null;
这样第一次调用返回deviceInfo,第二次调用返回null。
5、mock代码,里面的变量要用通用类型,比如:
pushAppManager.pushDataToUser(anyInt, withAny(new HashMap()), anyString);
int 改为anyInt,类用withAny,String用anyString。
当你觉得生活艰难时,你一定在走上坡路。与君共勉~