这里先说下背景:测试提了bug,经过定位发现是参数传的不对,一个bean里面的int类型的ID为0。后台小姐姐一口咬定,她传的参数不可能为0,要么大于0,要么是null。我就不禁怀疑是不是我把null转成了0,毕竟这个字段是int类型。那怎么验证呢?打桩传递假数据再出包验证太慢(我们的项目出一次包要七八分钟的样子),能不能不出包直接验证呢?很自然的就想到了单元测试。
废话不多说,看下面:
1.首先,再module的build.gradle中依赖 junit:junit:4.12 ,如图:
2.再src下面创建test文件夹,再创建Java文件夹(其实不用新建文件夹也行,但是这样做方便我们分开管理,省的和业务代码弄混,而且可以直接git忽略文件夹,不用提交到仓库),这儿就不放图了;
3.接着创建测试用的Java类,名字随便起,如图:
我又写了个test()的方法这个名字可以随便起,带会儿要测试的代码就在这个方法里面写,这里可以先什么也不写
3.接下来,右键
4.如图
5.如图,勾选test方法
6.会生成一个名叫TestCaseTest的类,如图
7.写需要用到的JavaBean,如图
8.把要测试的代码写到生成的对应名叫test1的方法中即可
9.好了,写完了,右键,Run‘test()1’,当然,如果你想debug的话,也是可以的
10,查看结果,wtf,竟然报错了
具体原因,还没来得及深究,应该是junit这个库里面没有封装log工具类吧,那怎么办呢?过段打印到控制台啊,好的,再来一次
11.如图
成功了,bingo,证明了我的猜测,在使用jackSon进行json串解析的时候,若bean中的字段是int类型,拿到的值是null,则会将该int字段初始化未0
最后,写的不太好,大家多多见谅,只是想记录下自己的开发历程。不喜,请喷!