gpt4 book ai didi

unit-testing - Grails 2.0:发布测试flash.message

转载 作者:行者123 更新时间:2023-12-02 04:04:57 25 4
gpt4 key购买 nike

我对UserController进行了单元测试,但是自从升级到Grails 2.0以来,flash变量似乎总是返回没有消息的空映射。

以下是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会为null,但无法解决闪存问题。 viewmodel也存在相同的问题。

我想念什么?任何帮助表示高度赞赏。

问候

乔纳斯

编辑:

这是一个奇怪的情况:

我的 Controller 具有以下功能:
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()中不停止

怎么可能????

问候

乔纳斯

最佳答案

对我来说,这意味着userInstance.validate()返回false,即验证失败。

关于unit-testing - Grails 2.0:发布测试flash.message,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8208345/

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