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

BSD
Java
跨平台
2017-08-04
闲大赋

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 里计算表达式实现。

的码云指数为
超过 的项目
加载中

评论(0)

暂无评论

xlsunit 1.0.5 发布,面向数据库应用的单元测试框架

xlsunit 1.0.5 已发布,更新如下: #IECXC 行数据比较出错的bug修复 #IDQKB sql语句里读取变量表的数据 #IDQI3 变量表可以取得输入表数据的任何一个字段 xlsunit 辅助junit,用于辅助基于 Sp...

2017/08/04 10:29

没有更多内容

加载失败,请刷新页面

没有更多内容

暂无问答

XLSUnit,面向数据库的单元测试工具

XLSUnit 面向数据库应用的单元测试框架,使用excel,作为输入,以及输出比较,适合大量数据库操作. 如下情况可以使用xlsunit 必须使用Spring或者Spring Boot,因为会利用Spring单元测试事务回滚机...

2017/06/29 14:06
569
1
自下向上的编写容易阅读的代码方法(下 )

我在 关于极简编程的思考 中曾提到要编写可阅读的代码。因为代码是编写一次,阅读多次。 阅读者包括代码编写者,以及后来的维护人员。能让阅读代码更轻松,有利于增强项目或者产品的可维护性...

2017/08/18 17:01
846
6

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部