在grails run-app中,hibernate事件会定期触发而不会出现问题。但是,在每个集成测试用例期间,这些相同的事件都不会触发。下面是我的代码的本质,削减到最简单的形式。即使在集成测试期间使用也是休眠吗?是否有可以应用的不同测试方法?建议或意见是最受欢迎的。
集成测试
@Mock ([User])
class SomeIntegrationTests {
@Test
void testSomething () {
new User().save(flush: true)
}
}
控制器
class Controller implements SaveOrUpdateEventListener {
public void onSaveOrUpdate(SaveOrUpdateEvent event) throws HibernateException {
print 'event fired'
}
}
resources.groovy
beans = { service(MyService)
hibernateEventListeners(HibernateEventListeners) {
listenerMap=['save-update' : service, 'delete' : service]
}
}
答案 0 :(得分:2)
您正在嘲笑您的User
域类。在模拟域类时,不使用hibernate。如果删除@Mock([User])
,将使用真实域对象,包括hibernate。