Построение тестовых данных Grails для объектов, отличных от GORM

#testing #grails #mocking #grails-orm

#тестирование #grails #издевательство #grails-orm

Вопрос:

Мы создаем интерфейс Grails для серверной части на основе REST. У нас есть много значений (DTO), которые мы отправляем в / из JSON.

Я ищу удобный способ создания макетов этих DTO для целей тестирования. Мне нравятся плагины Grails build-test-data и fixtures, но я считаю, что их предназначение — для объектов GORM.

Какие-либо рекомендации по созданию тестовых данных для объектов, отличных от GORM?

Ответ №1:

Плагин build-test-data использует ограничения / проверки grails (особенно «nullable: false») И реляционные свойства (belongsTo, hasMany и т. Д.) Для обхода графика зависимостей и построения наименьшего набора «обязательных» объектов и свойств для объекта, который вы пытаетесь построить. Эти метаданные действительно позволяют BTD создавать действительный график «автоматически».

Вы правы, что это не работает для обычных DTO, потому что они не соответствуют этим соглашениям.

Если ваши DTO — это просто POJO / POGO, вам, вероятно, лучше всего использовать какой-то шаблон Builder. Этот пост от Nat Price вдохновил меня на написание build-test-data, и шаблон, который он описывает, все еще действителен для объектов, которые не соответствуют соглашениям, которые выполняют объекты GORM.

Комментарии:

1. Привет, Тед, спасибо за ссылку, выглядит хорошо. Я также нашел следующее полезным: jworks.nl/2011/09/16/friday-repost-groovy-object-mother-pattern На днях я вернусь в ГУМ и куплю тебе пару кружек пива.

2. Как насчет POGO, который реализует grails.validation.Validateable ?