《Java单元测试实战》——无效单测:那些年,我们写过的无效单元测试(6) https://developer.aliyun.com/article/1232110?groupCode=java
3. 验证数据对象问题
这里,以分页查询公司用户为例,来说明验证数据对象时所存在的问题。
代码案例:
1) 不验证数据对象
反面案例:
很多人为了偷懒,对数据对象不进行任何验证。
存在问题:
无法验证数据对象是否正确,比如被测代码进行了以下修改:
2) 验证数据对象非空
反面案例:
既然不验证数据对象有问题,那么我就简单地验证一下数据对象非空。
存在问题:
无法验证数据对象是否正确,比如被测代码进行了以下修改:
3) 验证数据对象部分属性
反面案例:
既然简单地验证数据对象非空不行,那么我就验证数据对象的部分属性。
存在问题:
无法验证数据对象是否正确,比如被测代码进行了以下修改:
4)验证数据对象全部属性
反面案例:
验证数据对象部分属性也不行,那我验证数据对象所有属性总行了吧。
存在问题:
上面的代码看起来很完美,验证了PageDataVO中两个属性值totalSize和dataList。但是,如果有一天在PageDataVO中添加了startIndex和pageSize,就无法验证这两个新属性是否赋值正确。代码如下:
备注:本方法仅适用于属性字段不可变的数据对象
5) 完美地验证数据对象
对于数据对象属性字段新增,有没有完美的验证方案?有的!答案就是利用JSON序列化,然后比较JSON文本内容。如果数据对象新增了属性字段,必然会提示JSON字符串不一致。
完美案例:
备注:本方法仅适用于属性字段可变的数据对象。
《Java单元测试实战》——无效单测:那些年,我们写过的无效单元测试(8) https://developer.aliyun.com/article/1232107?groupCode=java