我故意導致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)。謝謝!