Я намеренно вызываю, что экземпляр cat не работает. Проходит следующий тест., делающий domain.save (failOnError: true) сбой при выполнении тестов интеграции
void testSomething() {
Cat.metaClass.save = {
throw new Exception("Asdasd")
}
shouldFail(Exception){
Cat cat = new Cat(name: "asd")
cat.save()
}
GroovySystem.metaClassRegistry.removeMetaClass(Cat.class)
}
Но, когда я устанавливаю свойство failOnError для метода сохранения, это не выполняется. Как я могу изменить сохранение с помощью metaClass, чтобы сделать исключение (failOnError: true) исключением? Я ценю любую помощь! Благодаря!
void testSomething() {
Cat.metaClass.save = {
throw new Exception("Asdasd")
}
shouldFail(Exception){
Cat cat = new Cat(name: "asd")
cat.save(failOnError: true)
}
GroovySystem.metaClassRegistry.removeMetaClass(Cat.class)
}
Одна альтернативы делать то же испытание, чтобы пройти в недопустимых параметрах экземпляра домена, так что проверка не пройдена, и исключение, но это не будет работать во всех случаях, поскольку в некоторых случаях экземпляр домена Безразлично» t требует любых параметров, заданных пользователем. Таким образом, чтобы имитировать отказ домена save(), в этом случае нам понадобится способ издеваться над сбоем сохранения. Итак, я ценю, если кто-нибудь ответит, как издеваться над сохранением с сохранением или без сохранения параметров, таких как save (flush: true), save (failOnError: true). Благодаря!