Grails hibernate事件在集成测试期间不会触发

Grails hibernate事件在集成测试期间不会触发,hibernate,grails,integration-testing,gorm,Hibernate,Grails,Integration Testing,Gorm,在grails运行期间,应用程序hibernate事件会定期触发,不会出现问题。但是,在每个集成测试用例期间,不会触发这些相同的事件。下面是我的代码精髓,简化为最简单的形式。hibernate是否在集成测试期间使用?是否可以采用不同的测试方法?欢迎提出建议或意见 集成测试 @Mock ([User]) class SomeIntegrationTests { @Test void testSomething () {

在grails运行期间,应用程序hibernate事件会定期触发,不会出现问题。但是,在每个集成测试用例期间,不会触发这些相同的事件。下面是我的代码精髓,简化为最简单的形式。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'
        }
    }
资源.groovy

    beans = { service(MyService)

        hibernateEventListeners(HibernateEventListeners) {
           listenerMap=['save-update' : service, 'delete' : service]
        }
    }

您正在模拟您的
用户
域类。模拟域类时,不使用hibernate。如果删除
@Mock([User])
将使用真正的域对象,包括hibernate。

Ah。现在,作为一个后续问题,当@Mock注释被删除时,grails似乎无法调用动态查找器(不包括在我上面的示例中)。有没有一种方法可以在没有mock标记的情况下使用make User.findAll()调用?如果测试位于
test/integration
子目录中,则动态查找程序应该可以工作。这是grails用来表示测试需要整个spring/hibernate堆栈的约定。