У меня есть 2.2.4 проект Grails, и я пытаюсь написать модульный тест для метода, который запрашивает более lastUpdated
, например, так:Установка LastUpdated объекта домена Grails в Спока
Tile.createCriteria().list {
lt('lastUpdated', new Date() - 1)
}
Этот метод работает отлично в реальной жизни, но не работает в моих модульных тестах, потому что я не могу создать никаких тестовых данных с lastUpdated
, кроме now
. Установка myTile.lastUpdated
явно не работает, так как это обновление и, таким образом, запускает автоматическую отметку времени. Для отключения автоматической метки времени требуется eventTriggeringInterceptor
, который, похоже, не доступен в модульных тестах. Смещение стандартного конструктора Date
для возврата других значений также не помогло. Прямые обновления SQL вообще не доступны в модульных тестах.
Возможно ли это в модульных тестах, или мне нужно написать интеграционный тест?
Лично я думаю, что если вы тестируете настойчивость, вы всегда должны способствовать интеграции тест, если вы не очень хорошая причина не. Выполнение ваших тестов настойчивость против ложной реализации GORM в памяти просто требует неприятностей. –
Это справедливо, но я не хочу проверять настойчивость, я хочу проверить свой запрос (что действительно так просто). –