gpt4 book ai didi

unit-testing - 在Session上设置属性时,Grails 2.0:MissingPropertyException

转载 作者:行者123 更新时间:2023-12-02 14:55:16 27 4
gpt4 key购买 nike

从2.0.0.RC1升级到Grails 2.0.0以来,在 session 上设置用户属性时, Controller 中确实有一些奇怪的行为。

我的测试处于集成状态,当运行grails --integration test-app或从IDE运行时,所有测试都通过了,但是当首先使用单元测试运行grails test-app 时,它失败了。

我只是在UserController.login()操作中的 session 上设置用户:

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

用以下工作替换 Controller 代码:
session.setAttribute('user',user)

和测试:
assert null != session.getAttribute('user')

如上所述,这仅在运行完整的测试套件时发生。如果运行 --integration很好。 run-app也可以。

有毛病吗

问候

乔纳斯

最佳答案

我有完全一样的问题。我正在使用Grails 2.0.1

我注意到的一件事是,失败的测试使用metaClass进行了一些设置,例如:

controller.metaClass.message = {args -> "mockMessage"}

删除该行之后,测试将通过访问 session 属性的那一部分。但是到达调用message()的点时测试将无法正常工作

关于unit-testing - 在Session上设置属性时,Grails 2.0:MissingPropertyException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8611810/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com