У меня есть модульный тест для моего UserController
, но после обновления до Grails 2.0 переменная flash
всегда возвращает карту emtpy без сообщения.
Вот некоторые фрагменты кода UserControllerTests
:
@TestFor(UserController)
@Mock(User)
class UserControllerTests {
...
void testSaveSucceeds() {
params.userName = 'Joe'
...
controller.save()
assert null != flash.message
assert '/user/list' == response.redirectedUrl
}
}
In 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
был нулевым, но это не решило проблему со вспышкой.Та же проблема существует и с 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 останавливается на точке останова в действии test (), но не в save ()
КАК это может быть ????
С уважением
Jonas