SpringBoot 单元测试

jacoco 官网

什么是单元测试

我们开发了很多代码,有时候我们会通过 @Test 的这种方式去测试我们写的某些方法是否正确,那么我们写的这些测试都称之为单元测试

一般的,每个类的每个方法都尽量做一次单元测试,并将他们留在 test 目录

什么是单元测试通过率

举例:我们通过 @Test 写了 10 个方法测试,如果执行成功了 5 个,那么通过率为 50%

Maven 配置单元测试通过率

<build>
		<plugins> 
            <!-- 单元测试通过率 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>2.22.1</version>
				<configuration>
					<skipTests>false</skipTests>
					<!--suppress UnresolvedMavenProperty -->
					<argLine>-Dfile.encoding=UTF-8 ${jacocoArgLine}</argLine>
					<includes>
                        <!-- 用于指定对哪些类进行单元测试通过率的统计 -->
						<include>**/*Test.java</include>
					</includes>
				</configuration>
			</plugin>
    </plugins>
</build>

② 编写好测试用例后,执行 mvn install 后,在项目的路径下的 target 目录中会生成以下目录

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

什么是单元测试覆盖率

对我们已经写好的代码编写测试用例,执行用例后会测试测试用例覆盖了我们代码的哪些分支,将这些情况进行汇总

Maven 配置单元测试覆盖率

<build>
	<plugins> 
             <plugin>
			 	<groupId>org.jacoco</groupId>
			 	<artifactId>jacoco-maven-plugin</artifactId>
			 	<version>0.8.3</version>
			 	<executions>
			 		<execution>
			 			<id>default-prepare-agent</id>
			 			<goals>
			 				<goal>prepare-agent</goal>
			 			</goals>
			 			<configuration>
			 				<propertyName>jacocoArgLine</propertyName>
			 			</configuration>
			 		</execution>
			 		<execution>
			 			<id>default-report</id>
			 			<phase>test</phase>
			 			<goals>
			 				<goal>report</goal>
			 			</goals>
			 		</execution>
			 	</executions>
			 </plugin>
    </plugins>
</build>

② 编写目标代码和测试用例

在这里插入图片描述
③ 执行 mvn install 后,在项目的路径下的 target 目录中会生成报告

在这里插入图片描述
④ 打开 index.xml 查看代码覆盖情况

在这里插入图片描述

⑤ 增加对分支代码的覆盖

总结:如果为了提高代码覆盖率,那么就需要把每个分支的情况都考虑到然后测试

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

对于可能要调用数据库或者其他服务的测试用例,可以参考该博客

https://cloud.tencent.com/developer/article/1862618

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值