gpt4 book ai didi

grails - 在 Grails 2.3.8 中测试 .gsp 页面的渲染内容

转载 作者:行者123 更新时间:2023-11-28 20:55:18 25 4
gpt4 key购买 nike

第一次在这里提问。我会切入正题。我正在尝试测试 Controller 的渲染 View ,但我还没有找到任何明确的方法来做到这一点。特别是,我要做的是测试呈现的 .gsp 的实际内容;即,如果呈现的 html 页面包含项目列表(列表,例如 <ul><li> 标记),或页面应显示的任何其他内容。这可能吗?或者甚至是测试这种事情的有效方法?我试着做这样的事情:

Controller :

class ConnectedPairController {

def show(int id) {
//Some logic to populate collections and stuff

render(view:"show.gsp", model:['pqc':cp.getPath(),
'connected':cp.getPage(),
'instance':coll,
'pagesCollection':colPages])
}

测试:

@TestFor(ConnectedPairController)

class ConnectedPairControllerSpec extends Specification {
void "test show"() {
when:
controller.show(4) //4 being the id of the content I want to display
then:
controller.response.text.contains "Some string or html tag the page should display"
}
}

但返回的文本为空。也许这是应该的,但是有没有办法获取渲染的内容?

我在文档中发现的内容没有用(至少对我想做的事情没有用),因为恕我直言,它只测试琐碎的东西,比如正在渲染的 .gsp 或变量的内容:

@TestFor(SimpleController)
class SimpleControllerSpec extends Specification {

void 'test home'() {
when:
controller.home()

then:
view == '/simple/homePage'
model.title == 'Hello World'
}
}

希望我说得够清楚了。感谢您的宝贵时间。

PS:我使用的是 Grails 2.3.8。如果您需要与环境等相关的任何其他信息,请告诉我。

最佳答案

响应未在单元测试中完全呈现。 response.text will always be null when rendering views.

单元测试的目的是测试一个单元并模拟它周围的一切。 View 层在该单元之外。

如果你想测试 View ,试试GroovyPageUnitTestMixin

先生。哈基有一个good post on how to test views and templates这解释了如何测试它们。

关于grails - 在 Grails 2.3.8 中测试 .gsp 页面的渲染内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25669405/

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