xlsunit面向数据库应用的单元测试框架

联合创作 · 2023-10-01 15:03

xlsunit 辅助junit,用于辅助基于 Spring、SpringBoot 企业信息系统单元测试,这种企业信息系统都会有大量的数据库操作,使用 xlsunit 来初始化测试前的数据库,以及使用 xlsunit 来比较业务调用后的数据库数据,能减少单元测试工作量,增强单元测试可维护性。

xlsunit 用 excel 来模拟数据库表数据,适合那种一次业务操作,多个表数据变化的应用系统。

XLSParser workflowParser = null;
//
@Autowrired WorkflowService workflowService;
//
@MockBean
private ThirdPatyUserService userService;

@Autowired
protected SQLManager sqlManager;

@Before
public void init() {
  super.init();
  //XLSUnit BeetlSql
  DBAccess dbAccess = new BeetlSqlDBAccess(sqlManager);
  // Excel 
  XLSFileLoader loader = new XLSFileLoader("root");
  //
  workflowParser = new XLSParser(loader, "user.xlsx", dbAccess,
                                 new 
RowHolderFacotoy.RowBeetlSQLHolderFactory());
}

public void testUser1() {
  //执行某个测试场景的初始化工作,初始化user表
  VariableTable vars = new VariableTable();
  userParser.init(vars);

  //开始测试,从excel中获取userId和password
  userParser.prepare("场景1", vars);    
  Integer id = (Integer) vars.find("id");
  String newPassword = vars.findString("test.password");
  //调用业务代码,修改用户密码
  userSerivce2.modifyUserInfo(id, newPassword);

  //比较数据库里的数据跟场景1的数据是否一致
  userParser.test("场景1", vars);

}

可以将测试数据写在 excel 里,或者通过数据库客户端工具粘贴到 excel 里完成数据的输入。

可以用拥有任意多个 excel 文件,每个文件概念上都可以包含一个初始化数据的多种测试场景,excel 文件有三部分组成

  • 第一个工作表,这个工作表用来介绍当前 excel 文件所测试的业务,以及包含一个目录,快捷指向每个场景测试

  • 第二个表示 数据库初始化数据,可以包含多个表的初始化数据,也可以在初始化数据定义前,定义一些变量,这些变量可以用在初始化数据,JUnit 代码里,以及随后的场景测试里

  • 第三个表以后的每个工作表都是场景测试表,对应了单元测试完毕后,期望的数据库的样子。通常用红色背景标注在表的列名上,这样表示只让 xlsunit 比较关心的列。同时,也能提醒阅读者,编写期望值

xlsunit 基于 Beetl ,完成 Excel 里计算表达式实现。

浏览 16
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报