微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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));

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

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

原文地址:https://www.jb51.cc/java/125207.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐