Postgres Data to XML

Кто-нибудь знает какие-нибудь хорошие методы для преобразования базы данных? записи в XML?

Т.е. end_date = start_date + goal_months.months Затем я клонирую ...

Я работаю с Time in Rails и использую следующий код для установки даты начала и окончания проекта:

start_date ||= Time.now
end_date = start_date + goal_months.months

Затем я клонирую объект и я пишу тесты rspec, чтобы подтвердить, что атрибуты совпадают в копии. Конечные даты совпадают:

original[end_date]:  2011-08-24 18:24:53 UTC
clone[end_date]:     2011-08-24 18:24:53 UTC

, но спецификация дает мне ошибку в начальных датах:

expected: Wed Aug 24 18:24:53 UTC 2011,
     got: Wed, 24 Aug 2011 18:24:53 UTC +00:00 (using ==)

Ясно, что даты совпадают, просто отформатированы по-разному. Как получается, что они по-разному хранятся в базе данных, и как мне их сопоставить? Я также пробовал использовать DateTime с теми же результатами.

Исправление: Конечные даты тоже не совпадают. Они распечатывают то же самое, но и ошибки rspec на них. Когда я распечатываю дату начала и дату окончания, значения выходят в разных форматах:

start date: 2010-08-24T19:00:24+00:00
end date: 2011-08-24 19:00:24 UTC
23
задан lobati 24 August 2010 в 19:07
поделиться

3 ответа

Вы должны издеваться над методом времени «now», чтобы убедиться, что он всегда соответствует дате в спецификации. Вы никогда не знаете, когда задержка приведет к сбою спецификации из-за нескольких миллисекунд. Такой подход также гарантирует, что время реального кода и спецификации будет одинаковым.

Если вы используете фиктивную библиотеку rspec по умолчанию, попробуйте сделать что-нибудь вроде:

t = Time.parse("01/01/2010 10:00")
Time.should_receive(:now).and_return(t)
23
ответ дан 29 November 2019 в 00:39
поделиться

Я предполагаю, что значение Time.now отформатировано иначе, чем значение в вашей базе данных.

0
ответ дан 29 November 2019 в 00:39
поделиться

Вы уверены, что используете == , а не eql или быть ? Последние два метода используют идентификацию объекта, а не сравнивают значения.

Из выходных данных похоже, что ожидаемое значение - это Time , а тестируемое значение - DateTime . Это тоже может быть проблемой, хотя я не решаюсь угадать, как это исправить, учитывая почти патологический характер библиотек даты и времени Ruby ...

0
ответ дан 29 November 2019 в 00:39
поделиться
Другие вопросы по тегам:

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