使用dbUnit的 IDataSet 因乱序造成assert失败而采取的措施
2024-09-07 06:03:16
本例源码下载:https://files.cnblogs.com/files/xiandedanteng/dbUnitTest20200211.zip
在做IDataSet比较时,特殊情况下会有期盼的IDataset和预想的IDataSet因顺序不一样而导致assert失败的情况发生。
一般的处理是用双重循环进行比较,也可以采用下面的方式:
准备的XLS:
期待的XLS:
可以看到3和8,10和12的位置是不匹配的,但数据是一致的。
排序具体的方法如下:
IDataSet dstExpected = new XlsDataSet(new FileInputStream(TEST_PATH +"expected01.xls"));
FlatXmlDataSet.write(dstExpected,new FileOutputStream("D:\\logs\\dstExpected20200211.xml")); IDataSet dstActual = new XlsDataSet(new FileInputStream(TEST_PATH +"prepare01.xls"));
FlatXmlDataSet.write(dstActual,new FileOutputStream("D:\\logs\\dstActual20200211.xml")); SortedTable actualTable=new SortedTable(dstActual.getTable("REDELIVERY_REQUEST"),new String[]{"col1","col2"});
actualTable.setUseComparable(true); SortedTable expectedTable=new SortedTable(dstExpected.getTable("REDELIVERY_REQUEST"),new String[]{"col1","col2"});
expectedTable.setUseComparable(true); Assertion.assertEquals(expectedTable, expectedTable);
参考资料的提示是按一列排序,我在本地试了不成功,按两列排序后才得以通过,这是本例和资料有差异的关键所在。
如果XLS文件中存在多于两列的情况,按以上方法排序也能成功。
参考资料:
https://blog.csdn.net/zhangyz_6719369/article/details/38053141
--2020-02-11--
最新文章
- MyBatis Like查询处理%_符号
- PHP框架中的日志系统
- 概率论 --- Uva 11181 Probability|Given
- 常用分类列表wp_list_categories()
- Java实体书写规范
- Swift—属性观察者-备
- STL跨DLL使用
- --@angularjs--理解Angular中的$apply()以及$digest()
- ionic开发遇到的坑及总结
- Python--简单接口测试实例(一)
- 从svn迁移至Git并保留所有 commit 记录
- 逆向工程-真码保存在系统文件破解QQ游戏对对碰助手
- python测试断言
- luogu P4491 [HAOI2018]染色
- 网易云音乐mp3外链、真实地址下载方法
- 牛客训练四:Applese 涂颜色(费马小定理+快速幂)
- Java 内存溢出思维导图
- pku1204 Word Puzzles AC自动机 二维字符串矩阵8个方向找模式串的起点坐标以及方向 挺好的!
- 〖QT编程〗在Qt编程中使用/显示中文编码
- tornado WebSocket详解
热门文章
- 3、Java 对象和类
- 06 大数据CentOS6.5mini安装与网络配置
- CSS学习第三天
- 精讲RestTemplate第7篇-自定义请求失败异常处理
- 轻音少女K-on闹钟,时钟,日历,整点报时
- 《Java从入门到失业》第二章:Java环境(二):JDK、JRE、JVM
- 非确定性有穷状态决策自动机练习题Vol.1 A.扭动的回文串
- fatal error: glib.h: No such file or directory
- Flutter FlatButton 按钮基本各种用法
- 初学Linux (Linux_note)