Дата относительно тока в наборе данных DBUnit

Я задаюсь вопросом, существует ли какой-либо способ указать, например, завтра как дата в наборе данных DBUnit XML. Иногда логика кода отличается для дат в будущем и дат в прошлом, и я хочу протестировать оба случая. Наверняка я могу указать что-то как 5-го ноября 2239 и быть уверен, что тест будет работать до этой даты, но является там более изящным путем.

Я еще не столкнулся с такой ситуацией во время своей разработки Java, но после того как у меня был опыт, когда логика кода отличалась в течение одного дня перед датами, за два дня до дат и больше чем за два дня до дат. В этом случае единственное возможное решение записать базе данных управляемый тест состоит в том, чтобы вставить относительные даты во время импорта данных.

Там какие-либо средства предоставляются DBUnit для этого?

14
задан VestniK 18 May 2010 в 11:41
поделиться

2 ответа

Я только начал использовать 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));

Теперь, когда запускается тест, для данных создания пользователя всегда будет установлено значение за два дня до запуска теста.

Надеюсь, это поможет. Удачи.

25
ответ дан 1 December 2019 в 10:18
поделиться

Вы можете использовать add () календаря для определения дат в будущем и использования этого в связи с источником данных для JUnit. Я сомневаюсь, что это будет работать с форматом XML DBUnit. Возможно, вы создадите свой собственный TestCase, который расширяется от DBTestCase и реализует метод getDataSet ().

0
ответ дан 1 December 2019 в 10:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: