单元测试流程及注意事项有哪些(分析单元测试介绍)

网站编辑01 2022-08-02 13:11:50 阅读:18

  一、什么是单元测试

  单元测试是对一个模块、一个函数、或者一个类来进行正确性检验的测试工作。

  比如对方法testOne(double a),我们可以编写一下几个测试用例:

  输入正数,比如1、1.2、0.99,期待返回值和输入相同;

单元测试流程及注意事项有哪些(分析单元测试介绍)

  输入负数,比如-1、-1.2、-0.99,期待返回值与输入相反;

  输入0,期待返回0;

  输入非数值类型,比如“”、[]、{},期待抛出Error。

  把上面的测试用例放到一个测试模块里,就是一个完整的单元测试。

  二、单元测试的益处

  能够协助程序员尽快找到BUG的具体位置

  能够让程序员对自己的程序更有自信

  能够让程序员在提交项目之前将代码变的更加健壮

  能够协助程序员更好的进行开发

  能够向其他程序员展现你的程序该如何调用

  能够让项目主管更了解系统的当前状况

  三、单元测试的流程

  3.1、准备测试类

  新建一个测试类,可以通过编程工具的插件自动生成测试类(比如:IDEA的Junit Generator),也可以自己手动建立。

  3.2、执行测试的业务

  在测试类中引入所需要的类和包,测试可以使用junit jar包辅助也可以不用,直接main方法运行要测试的代码、业务。

  3.3、验证测试数据

  通过一些可以做日志的jar包(比如log4j),在各个测试的数据前后将其输出出来,方便观察测试过程中代码的运行情况,也可以System.out.println(),自行设置便于观察的输出格式。

  四、Spring Boot引入单元测试

  4.1、测试框架引入

  引入依赖

  单元测试依赖 展开源码

  引入spring -boot-starter-test后,有如下几个库:

  -Junit —— The de-facto standard for unit testing Java applications

  -Spring Test & Spring Boot Test —— Utilities and integration test support for Spring Boot applications

  -AssertJ —— A fluent assertion libraray

  -Hamcrest —— A library of matcher objects(also known as constraints or predicates)

  -Mockito —— A Java mocking framework

  -JSONNassert —— An assertion library for JSON

  -JsonPath —— XPath for Json

  4.2、单元测试示例

  spring容器中的类做单元测试

  在src/main下建立UserService类,对其进行单元测试,生成的单元测试类在src/test下,

  直接在测试类上面加上如下两个注解

  @RunWith(SpringRunner.class)

  @SpringBootTest

  就可以取到spring中的容器的实例,如果配置了@Autowired那么久自动将对象注入


二维码