在进行集成测试时,Grails是否有任何方法断言视图页面中是否存在文本?
例如:有时我们想断言视图页面包含某些元素。例如:在电影列表页面中,我们要断言给定的电影显示在视图页面中。我们怎样才能在Grails中有效地实现这一目标?谢谢!
答案 0 :(得分:0)
嘛!据我所知,当我们渲染一个视图时,我们得到了String,因此你可以使用String的contains方法来测试页面是否包含一些文本。
有很多这样的例子。
以下是来自http://mrhaki.blogspot.in/2013/05/grails-goodness-testing-views-and.html博客的内容:
package com.grails.views
import grails.test.mixin.TestMixin
import grails.test.mixin.web.GroovyPageUnitTestMixin
import spock.lang.Specification
@TestMixin(GroovyPageUnitTestMixin)
class HeaderTemplateSpecification extends Specification {
def "if username is set then show message Hi with username"() {
expect: 'Template output must contain Hi, Johnson'
(render(template: '/sample/header', model: [username: 'Johnson'])).contains 'Hi, Johnson'
}
}
上面,如果您注意到已经渲染了gsp视图并检查了视图中是否存在Hi,mrhaki
字符串。
希望它能回答你的问题。