利用Excel支持JUnit参数化测试

在JUnit里面,可以使用CsvFileSource读取csv文件进行参数化测试,可是CSV文件不支持格式,编辑颇为麻烦,尤其是多次编辑,因此自然想到是否可以使用Excel文件,可以有各种格式,支持各类数据。

最新开源组件ExcelBDD提供了此功能,其maven导入代码如下

XML 复制代码
<dependency>
  <groupId>com.excelbdd</groupId>
  <artifactId>excelbdd-java</artifactId>
  <version>1.4.1</version>
</dependency>

对于如下样子的Excel里面表格

参数化测试代码如下

java 复制代码
import java.util.Map;
import org.junit.jupiter.params.ParameterizedTest;

import com.excelbdd.ExcelFileSource;
import com.excelbdd.TestWizard;
import static org.junit.jupiter.api.Assertions.*;
    ......
    @ParameterizedTest
	@ExcelFileSource(file = "excelbdd/DataTable.xlsx", sheet = "DataTable2")
	void testGetDateFromExcelTable(Map<String, String> parameterMap) {
		TestWizard w = new TestWizard(parameterMap);
		assertEquals("Value1", w.get("Header01").substring(0, 6));
		assertEquals("Value2", w.get("Header02").substring(0, 6));
//      ......
		assertEquals("Value8", w.get("Header08").substring(0, 6));
//		real test automation implementation
	}

@ExcelFileSource有五个参数:

file 文件名,缺省以resources为相对基准

brotherFolder 兄弟路径,改变相对基准到此路径的上级,一般不需要用

sheet Excel里面Sheet名称,缺省是第1个

headerRow 标题列,缺省第1行,一般不需要用

startColumn 数据区第1列在哪里,缺省是从第1列开始自动搜索数据区,一般不需要用

ExcelBDD的功能不止于使用Excel作为参数化测试来源,更加主要的功能是支持BDD,也是SBE。

参见ExcelBDD Python指南https://blog.csdn.net/zhangmike/article/details/133815589?spm=1001.2014.3001.5501

ExcelBDD Guideline By Java Examplehttps://blog.csdn.net/zhangmike/article/details/118197580

相关推荐
尘浮生几秒前
Java项目实战II基于微信小程序的校运会管理系统(开发文档+数据库+源码)
java·开发语言·数据库·微信小程序·小程序·maven·intellij-idea
偶尔。5352 分钟前
什么是事务?事务有哪些特性?
数据库·oracle
安迁岚4 分钟前
【SQL Server】华中农业大学空间数据库实验报告 实验六 视图
数据库·sql·mysql·oracle·实验报告
xoxo-Rachel13 分钟前
(超级详细!!!)解决“com.mysql.jdbc.Driver is deprecated”警告:详解与优化
java·数据库·mysql
JH30731 小时前
Oracle与MySQL中CONCAT()函数的使用差异
数据库·mysql·oracle
蓝染-惣右介1 小时前
【MyBatisPlus·最新教程】包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段
java·数据库·tomcat·mybatis
冷心笑看丽美人1 小时前
Spring框架特性及包下载(Java EE 学习笔记04)
数据库
武子康2 小时前
Java-07 深入浅出 MyBatis - 一对多模型 SqlMapConfig 与 Mapper 详细讲解测试
java·开发语言·数据库·sql·mybatis·springboot
代码吐槽菌2 小时前
基于SSM的毕业论文管理系统【附源码】
java·开发语言·数据库·后端·ssm
路有瑶台2 小时前
MySQL数据库学习(持续更新ing)
数据库·学习·mysql