我想知道是否有任何方法来指定例如明天作为DBUnit
XML数据集中的日期.有时代码逻辑在将来的日期和过去的日期是不同的,我想测试这两种情况.确定我可以指定一些像2239年11月5日这样的事情,并确保测试工作,直到这个日期,但有更优雅的方式.
我在Java开发过程中还没有遇到这样的情况,但是一旦我有代码逻辑在日期之前的一天,日期之前的两天和日期之前的两天以上的经验.在这种情况下,编写数据库驱动测试的唯一可能的解决方案是在数据导入期间插入相关日期.
是否有DBUnit为此提供的任何工具?
解决方法
我刚开始使用DBUnit并且正在寻找类似的功能.不幸的是,框架中的日期似乎不是表达式语言.但是,我使用DBUnit的ReplacementDataSet类找不到合适的解决方法.该类接受一个IDataSet对象,并公开方法来从数据集文件中替换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));
现在,当测试运行时,用户的创建数据将始终设置为运行测试前两天.
希望这可以帮助.祝你好运.