用pl.pojo.tester測試Pojo類,提高測試覆蓋率

我最新最全的文章都在 南瓜慢說 www.pkslow.com ,歡迎大家來喝茶!

1 前言

Java項目開發中,我們經常需要定義一些簡單的類Pojo,如VODTO等,通常它們作爲數據載體,只具有gettersettertoString等簡單方法。而在單元測試中,因爲有測試覆蓋率的要求,需要對這些簡單的類和簡單的方法進行測試,顯得十分冗餘和無聊。

當然可以配置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


歡迎關注微信公衆號<南瓜慢說>,將持續爲你更新...

多讀書,多分享;多寫作,多整理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章