如何写单元测试

什么是单元测试

单元测试(unit
testing),是指对软件中的最小可测试单元进行检查和验证,单元是人为规定的最小的被测功能模块,在java中指的是一个类,凡是涉及其他类的使用都使用mock或指定固定的返回。

单元测试的作用

测试代码逻辑,快速回测,优化代码,大大减少后期维护

如何写测试类

  1. 首先看代码逻辑是否正确,如果不正确需要修改逻辑,然后再写测试类

  2. 找到方法的所有分支结构,找到可以覆盖方法所有逻辑的组合,每个组合写一个测试方法

  3. 方法需要的外部逻辑调用都采用mock测试,mock对应的结果,方法调用完成,验证方法的调用次数和结果断言

概念

  1. mock就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的方法。

  2. 断言是编程术语,表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真。对于我们来说就是,方法调用返回的结果应该是多少。

运行

覆盖率的方式运行测试类,查看测试类对应的类的覆盖率,如果未覆盖的分支需要补充测试类,覆盖率至少达到90%算合格

注意事项

  1. mock返回的时候,如果是返回实体,需要使实体的所有属性的值互不相同,这样能更容易测试出问题

  2. 修改代码要同时修改测试类,如果不及时修改,后面会很难改,修改的时候不要为了测试能跑通而修改,这样修改没有意义

  3. 为了避免同一个类之间的数据相互影响,尽量少使用成员变量,如果使用成员变量,那赋值要在@BeforeEach(junit5)注释的方法里做,这样的方法在每个方法执行之前都会执行,就不会影响下一个方法的测试

  4. 单元测试尽量用真实的数据测试,这样更容易发现问题

  5. 单元测试需要注释清晰,不要把所有的逻辑都在一个方法里测试,否则,很难维护

  6. 使用org.mockito包mock对象时,对象必须有无参构造,不能mock的对象可以通过创建子类的方式实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值