2016-05-22 2 views
1

У меня есть класс домена, который принадлежит к двум другим классам домена с несколькими валидациями.Как обмануть объект домена, игнорируя проверку при тестировании в Grails?

Скажем, класс домена Книга принадлежит автору. При тестировании класса домена Book я хочу просто получить доступ к объекту Author, не создавая его со всеми сложными проверками для Author. Это возможно?

ответ

1

При сохранении экземпляра Author просто пройдите validate: false.

Author authorInstance = new Author() 
authorInstance.save(validate: false) 

Это предотвратит проверку на уровне Grails, но не знает, как это будет вести себя при записи на уровень базы данных.

+0

Это вызовет исключение, если ограничения будут нарушены на уровне базы данных. –

+0

Не уверен, что это сработает. – bhushan154

+0

Плагин build-test-data, вероятно, то, что я получаю после ответа Донала ниже. – bhushan154

0

build-test-data plugin - отличное решение этой проблемы, оно позволяет вам создавать/сохранять объекты, определяющие объект, только для свойств, которые вас интересуют. Плагин позаботится о заполнении значений для любых других требуемых свойств/объектов. Например, если книга требует автора, название и ISBN, но ваш тест только о названии книги вы можете просто написать

def book = Book.build(title: 'Great Expectations') 

Плагин будет заботиться о создании действительных значений для ISBN и автор и сохранение все в базу данных.