关于java:用plpojotester测试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/p…


欢送关注微信公众号<南瓜慢说>,将继续为你更新…

多读书,多分享;多写作,多整顿。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理