gpt4 book ai didi

grails - Spock 测试返回一个空模型

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

这个问题很奇怪,因为几乎相同的操作返回了正确的模型,不同之处在于我不是渲染模板而是 View 。

首先是 Controller 行动:

如您所见,渲染模型存在于此处

author model exists

def saveAjax(Author authorInstance){
if(!authorInstance.validate()){
respond view: 'index', authorInstance.errors
} else {
def author = new Author(username: authorInstance.username)
authorService.save(author)
render(template: 'author_row', model:[author:author]) //<--here the model is correct
}
}

如果我交换' 模板 ' 与 ' 查看 ',测试通过

服务 :
Author save(Author author) {
return author?.save(flush: true)
}

测试本身:
void "Test the saveAjax action"() {

when:"you do not have the correct params"
controller.saveAjax(new Author())

then:"expect to be redirected to index"
view == 'index'

when:"you have the correct params"
response.reset()
controller.saveAjax(new Author(username: "Alice"))

then:"expect to have model author"
model.author //<-- here I get author = null
}

错误 :

author_is_null
Condition not satisfied:

model.author
| |
| null
[authorInstance:daily.journal.Author : (unsaved)]

我知道您可以检查渲染模板的内容,但我明确地针对模型。有没有机会测试一下?

最佳答案

事实证明,我在配置方面遇到了 Grails 约定。尽管模型被命名为作者,但它只能作为作者 进行测试实例 .所以我把它改成:

then:"expect to have model author"
model.authorInstance

在规范和...它 通过 .如果有人可以向我解释为什么,我仍然会很高兴?

关于grails - Spock 测试返回一个空模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51650092/

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