我有一个针对我的UserController
的单元测试,但自从升级到Grails 2.0后,flash
变量总是返回一个没有消息的静态映射。Grails 2.0:发布测试flash.message
这里有UserControllerTests
的一些代码片段:
@TestFor(UserController)
@Mock(User)
class UserControllerTests {
...
void testSaveSucceeds() {
params.userName = 'Joe'
...
controller.save()
assert null != flash.message
assert '/user/list' == response.redirectedUrl
}
}
在UserController
:
def save = {
def userInstance = new User(params)
if (userInstance.validate()) {
flash.message = message(code: 'default.created.message', args: [userInstance.userName ])
...
}
但我的测试结果如下:
assert null != flash.message
| | |
| [:] null
false
我曾尝试为整合测试以及因为否则response
为weill,但没有解决闪存问题。 view
和model
也存在同样的问题。
我错过了什么?任何帮助高度赞赏。
问候
乔纳斯
编辑:
这里有一个奇怪的场景:
我的控制器有以下几点:
def test = {
flash.message = "Message"
}
def save = {
flash.message = "Message"
}
我的测试看起来像这样:
void testSaveSucceeds() {
controller.save()
println ">>> ${flash}"
controller.test()
println ">>> ${flash}"
}
这样的输出:
>>> [:]
>>> [message:Message]
有趣提也是在的IntelliJ调试器在断点测试()作用,但不能在保存()
如何停止那可以吗?
问候
乔纳斯
它使用grails 1.3.7吗? – fixitagain