【发布时间】:2012-01-26 13:30:39
【问题描述】:
自从从 2.0.0.RC1 升级到 Grails 2.0.0 后,在我的控制器中设置会话的用户属性时出现了一些非常奇怪的行为。
我的测试正在集成中,当运行 grails --integration test-app 或从 IDE 运行时,所有测试都通过,但是当运行 grails test-app 先进行单元测试时,它会失败。
我只是在我的 UserController.login() 操作中设置会话中的用户:
session.user = user
我的测试是这样的:
params.userName = testUser1.userName // some user domain instance
params.password = testUser1.password
controller.doLogin()
assert null != session.user
在运行grails test-app 时,我在session.user=user 行收到以下错误:
groovy.lang.MissingPropertyException: No such property: user for class: org.codehaus.groovy.grails.web.servlet.mvc.GrailsHttpSession
Possible solutions: new
将控制器代码替换为以下作品:
session.setAttribute('user',user)
和测试:
assert null != session.getAttribute('user')
如上所述,这只发生在运行完整的测试套件时。如果运行--integration 很好。 run-app也可以。
一个错误?
问候
乔纳斯
【问题讨论】:
标签: unit-testing session grails controller