Grails 在集成测试中未触发GORM事件
尝试在具有beforeDelete事件的对象上集成测试Grails GORM delete。问题是集成测试中未触发beforeDelete事件:Grails 在集成测试中未触发GORM事件,grails,gorm,grails-domain-class,Grails,Gorm,Grails Domain Class,尝试在具有beforeDelete事件的对象上集成测试Grails GORM delete。问题是集成测试中未触发beforeDelete事件: class ChallengeMembershipTests extends GroovyTestCase { void testQuitChallenge() { VUser user = VUser.build() assertNotNull("user should be saved", user.id)
class ChallengeMembershipTests extends GroovyTestCase {
void testQuitChallenge() {
VUser user = VUser.build()
assertNotNull("user should be saved", user.id)
UserChallenge challenge = UserChallenge.build(owner: user)
assertNotNull("challenge should be saved", challenge.id)
ChallengeMember member = ChallengeMember.build(challenge: challenge)
println "MEMBER: ${member}"
assertNotNull("member should be saved", member.id)
member.delete(flush:true)
}
}
ChallengeMember的相关部分:
def beforeDelete = {
log.info "begin deleting challenge member ${this}"
user.removeFromChallenge_memberships(this)
challenge?.removeFromParticipants(this)
team?.removeFromMembers(this)
log.info "deleting challenge member ${this}"
}
Grails1.3.5
有什么建议吗
我为什么在乎
由于以下原因,我的测试失败:
org.springframework.dao.InvalidDataAccessApiUsageException:删除的对象将通过级联重新保存(从关联中删除删除的对象):[com.v.ChallengeMember#1];嵌套异常为org.hibernate.ObjectDeletedException:删除的对象将通过级联重新保存(从关联中删除删除的对象):[com.v.ChallengeMember#1]
但是,delete在浏览器中可以正常工作,因为beforeDelete正在启动。如果我在WithNews会话中换行,它将启动-
ChallengeMember.withNewSession {
membership.delete(flush:true)
}