GORM钩子方法在Grails集成测试中有效吗
我有一个简单的问题 GORM挂钩方法(更新前,后加载等)是否在集成测试期间有效?是否对其进行了评估 我有集成测试(我的测试类扩展了GroovyTestCase),我可以看到我在域对象上的afterLoad方法中所做的更改似乎不起作用(加载后域对象保持不变),当我手动测试它(运行我的应用程序)时,它起作用(域对象成功更改)。在集成测试期间,我也看不到从钩子方法到控制台的任何日志或打印 这是预期的行为还是我遗漏了什么 下面是一些代码: 我有一个PackageState域对象,它具有字段accountID(整数)。 在PackageState中,我有后装载挂钩:GORM钩子方法在Grails集成测试中有效吗,grails,gorm,integration-testing,Grails,Gorm,Integration Testing,我有一个简单的问题 GORM挂钩方法(更新前,后加载等)是否在集成测试期间有效?是否对其进行了评估 我有集成测试(我的测试类扩展了GroovyTestCase),我可以看到我在域对象上的afterLoad方法中所做的更改似乎不起作用(加载后域对象保持不变),当我手动测试它(运行我的应用程序)时,它起作用(域对象成功更改)。在集成测试期间,我也看不到从钩子方法到控制台的任何日志或打印 这是预期的行为还是我遗漏了什么 下面是一些代码: 我有一个PackageState域对象,它具有字段account
def afterLoad() {
this.accountID = 33333
}
我的测试套件如下所示:
void "test3"() {
PackageState packageState1 = PackageState.findByAccountID(11111)
assertEquals(33333, packageState1.accountID)
}
信息是:
junit.framework.AssertionFailedError:应为:但为:
所以在我看来,钩子不叫:/
谢谢,
Ivan您可以通过以下方式围绕动态方法(或任何其他GORM方法)对这些事件挂钩进行集成测试:
class PackageStateSpec extends IntegrationSpec {
PackageState packageState1
void "test something"() {
given:
PackageState.withNewSession{
packageState1 = PackageState.findByAccountID(11111)
}
expect:
packageState1.accountID == 33333
}
}
每次从集成测试中测试时,事件都将注册到新会话