java – 在DBUnit数据集中相对于当前的日期

我想知道是否有任何方法来指定例如明天作为DBUnit XML数据集中的日期.有时代码逻辑在将来的日期和过去的日期是不同的,我想测试这两种情况.确定我可以指定一些像2239年11月5日这样的事情,并确保测试工作,直到这个日期,但有更优雅的方式.

我在Java开发过程中还没有遇到这样的情况,但是一旦我有代码逻辑在日期之前的一天,日期之前的两天和日期之前的两天以上的经验.在这种情况下,编写数据库驱动测试的唯一可能的解决方案是在数据导入期间插入相关日期.

是否有DBUnit为此提供的任何工具?

解决方法

我刚开始使用DBUnit并且正在寻找类似的功能.不幸的是,框架中的日期似乎不是表达式语言.但是,我使用DBUnit的ReplacementDataSet类找不到合适的解决方法.该类接受一个I​​DataSet对象,并公开方法来从数据集文件中替换IDataSet对象提取的对象.

数据集

<dataset>
    <user first_name="Dan"
          last_name="Smith"
          create_date="[create_date]"/>
<dataset>

代码

String dataSetFile = "testDataFile.xml";
IDataSet dataSet = new FlatXmlDataSetBuilder().build(new FileInputStream(dataSetFile));
ReplacementDataSet rDataSet = new ReplacementDataSet(dataSet);
Set<String> keys = dataSetAdjustments.keySet();
rDataSet.addReplacementObject("[create_date]",DateUtils.addDays(new Date(),-2));

现在,当测试运行时,用户的创建数据将始终设置为运行测试前两天.

希望这可以帮助.祝你好运.

相关文章

ArrayList简介:ArrayList 的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增...
一、进程与线程 进程:是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。 线程...
本文为博客园作者所写:&#160;一寸HUI,个人博客地址:https://www.cnblogs.com/zsql/ 简单的一个类...
#############java面向对象详解#############1、面向对象基本概念2、类与对象3、类和对象的定义格式4、...
一、什么是异常? 异常就是有异于常态,和正常情况不一样,有错误出错。在java中,阻止当前方法或作用域...
Collection接口 Collection接口 Collection接口 Collection是最基本的集合接口,一个Collection代表一组...