单元测试汇总

一、单元测试是什么

单元测试是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确,通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为1。

二、单元测试的好处

  • 消灭低级错误
    基本的单元测试,可以在系统测试之前,把大部分比较低级的错误都消灭掉,减少系统测试过程中的问题,这样也就减少了系统测试中定位和解决问题的时间成本了。
  • 找出潜在的bug
    某些类型的bug,靠系统测试是很难找到的。例如一些代码分支,平时99%的场景基本上都走不到,但一旦走到了,如果没有提前测试好,那么可能就是一个灾难。
  • 上库前的保证
    加了新代码,上库前跑一把单元测试,都通过,说明代码可能没有影响到之前的逻辑,这样上库也比较放心。如果之前的单元测试跑不过,那么很有可能新的代码有潜在的问题,赶紧修复去吧。
  • 重构代码后的回归
    当我们重构代码之后,需要保证不改变之前的逻辑,如果全量测试的话,工作量又太大,这个时候,我们可以通过测试用例来验证自己的重构后的逻辑是否变化。
  • 方便逻辑理解
    当我们看别人的代码的时候,可能会不知道从哪里看起,看主流程的话,步骤太长,这个时候,我们可以从某些单元测试入手,从而来了解整个流程。

三、相关技术

测试用例编写:

  • junit5:【Juint5详解】
  • mockito:【Mockito详解】
  • spring-boot-starter-test:【spring-boot-test详解】
  • mybatis-spring-boot-starter-test:【mybatis-spring-boot-starter-test详解】
  • testcontainer:【testcontainer详解】

测试质量保证

  • sonar
  • jenkins

延伸技术:

  • Cucumber
  • Karate
  • EasyMock
  • PowerMock
  • TestNG

四、编码规范及技巧

一般而
言,我们都会使用maven来管理我们的项目,至于gradle。这里不做过多的讲解。

1. 写多少测试类,测试方法

一般建议,对每一个要被测试的类,单独的创建一个测试类文件,文件名以被测试类+Test后缀命名,如:BeanUtil的测试类名为BeanUtilTest
测试方法一般也会是和被测试的方法名一致。

2. 测试用例所在目录

在maven项目中,我们把测试用例编写在test下的java目录下即可,如下所述:
单元测试汇总_第1张图片
建议和被测试的类的包路径一致。

3. 测试数据的选取

在选取测试数据的时候,我们不要只仅仅是选取了常规数据,要多考虑边界场景,比如字符串是否为null,集合是否有数据,等等,这样才能最大程度的找出代码中的潜在错误,让我们的代码无懈可击;

你可能感兴趣的:(#,单元测试)