1 前言
在Java
项目开发中,我们经常需要定义一些简单的类Pojo
,如VO
、DTO
等,通常它们作为数据载体,只具有getter
、setter
、toString
等简单方法。而在单元测试中,因为有测试覆盖率的要求,需要对这些简单的类和简单的方法进行测试,显得十分冗余和无聊。
当然可以配置exclude
掉这些类,不进行覆盖率的校验,但这也不是一个好办法,实际上,这些类有的时候也是应该被测试的。
幸好,有开源的类库解决了这个问题:pojo.pl。
2 用代码说话
引入依赖:
<dependency>
<groupId>pl.pojo</groupId>
<artifactId>pojo-tester</artifactId>
<version>0.7.6</version>
</dependency>
对于的Pojo
类如下(省略方法):
public class Student {
private String name;
private Integer age;
private Long classId;
private List<String> subjects;
//省略方法
}
public class Teacher {
private String name;
private Integer age;
private List<Long> classIds;
//省略方法
}
@Data
public class Classroom {
private Integer id;
private String building;
}
使用pl.pojo
来快速测试如下:
//测试所有方法
@Test
public void pojoTest() {
assertPojoMethodsForAll(Student.class, Teacher.class)
.quickly()
.areWellImplemented();
}
//测试特定方法
@Test
public void pojoMethodTest() {
assertPojoMethodsForAll(Student.class, Teacher.class)
.quickly()
.testing(Method.CONSTRUCTOR)
.testing(Method.GETTER)
.testing(Method.SETTER)
.areWellImplemented();
}
//测试被lombok注解的类也可以
@Test
public void lombokClassTest() {
assertPojoMethodsForAll(Classroom.class)
.areWellImplemented();
}
执行测试,查看结果,完美地提升覆盖率,只用几行代码就搞定了: