单元测试用于测试单个代码组件,并确保代码按预期方式工作。单元测试由开发人员编写和执行。大多数情况下,会使用JUnit或TestNG这样的测试框架。测试用例通常在方法级别编写,并通过自动化执行。
Spring Boot提供了一些注解和工具去帮助开发者测试他们的应用。
在讲springboot单元测试之前,先简单介绍下软件测试的类型(从开发角度来说),跟如何写好一个单元测试。
软件测试类型
- 单元测试:用于测试单个代码组件,并确保代码按预期方式工作。单元测试由开发人员编写和执行。
- 集成测试: 检查整个系统是否工作正常。集成测试也是由开发人员完成的,但它不是测试单个组件,而是旨在跨组件进行测试。系统由许多单独的组件组成,如代码、数据库、Web服务器等。集成测试能够发现组件的连接、网络访问、数据库问题等问题。
- 功能测试: 通过将给定输入的结果与规范进行比较来检查每个特性是否正确实现。这个阶段通常由公司专门的测试团队来负责。
- 验收测试:验收测试是保证软件的准备就绪,按照项目合同、任务书、双方约定的验收依据文档,向软件的购买者展示该软件的原始的需求。
单元测试要点
- 测试的粒度是方法级的。
- 测试的用例的结果应该是稳定的。
- 测试的用例应该尽量少写逻辑或者不写测试逻辑。
- 测试用例应该有很高的覆盖率,把基本的输入输出覆盖,一些边界也要覆盖到。
- 使用断言而不是输出打印的语句。
- 单元测试用例应该有个好名字,例如test_MethodName()
SpringBoot集成单元测试
引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>