我最新最全的文章都在 南瓜慢說 www.pkslow.com ,歡迎大家來喝茶!
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();
}
執行測試,查看結果,完美地提升覆蓋率,只用幾行代碼就搞定了:
3 總結
代碼請查看:https://github.com/LarryDpk/pkslow-samples
歡迎關注微信公衆號<南瓜慢說>,將持續爲你更新...
多讀書,多分享;多寫作,多整理。