我想知道是否有任何方法可以指定例如明天作为 DBUnit XML 数据集中的日期。有时,未来日期和过去日期的代码逻辑是不同的,我想测试这两种情况。当然,我可以指定 2239 年 11 月 5 日之类的日期,并确保测试在此日期之前有效,但是否有更优雅的方法。
我在Java开发过程中还没有遇到过这种情况,但是我曾经遇到过代码逻辑在日期前一天、日期前两天和日期前两天以上不同的情况。在这种情况下,编写数据库驱动测试的唯一可能的解决方案是在数据导入期间插入相对日期。
DBUnit 是否为此提供了任何设施?
我刚刚开始使用 DBUnit,并正在寻找类似的功能。不幸的是,框架中似乎没有日期的表达语言。不过,我确实使用 DBUnit 的 ReplacementDataSet 类找到了合适的解决方法。此类采用 IDataSet 对象并公开方法来替换 IDataSet 对象从数据集文件中提取的对象。
dataset
<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));
现在,当测试运行时,用户的创建数据将始终设置为测试运行前两天。
希望这可以帮助。祝你好运。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)