我故意导致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更改保存以使save(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)。谢谢!