加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 16:29:05 所属栏目:Java 来源:网络整理
导读:我想知道是否有任何方法来指定例如明天作为DBUnit XML数据集中的日期.有时代码逻辑在将来的日期和过去的日期是不同的,我想测试这两种情况.确定我可以指定一些像2239年11月5日这样的事情,并确保测试工作,直到这个日期,但有更优雅的方式. 我在Java开发过程中还
我想知道是否有任何方法来指定例如明天作为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));

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读