我有一個針對我的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