我在grails项目中写黄瓜测试用例。我想访问在message.properties文件中配置的消息
e.g。我在message.properties文件中配置了一个属性:
view.user.page.title = View user
我有一个黄瓜步骤ViewUserSteps.groovy
Given(~'^I looged in into the app$') { ->
//code related to login
}
When(~'^I click view users tab"$') { ->
// click user tab logic
}
Then(~'^I see I am on View User page$') { ->
at ViewUserPage
}
ViewUserPage.groovy是
import geb.Page
import grails.util.Holders
class ViewUserPage extends Page{
static url = "${Holders.config.app.url}/users/view"
static at = {
waitFor(30,2) {
title == "Edit user" // this title should be fetched from message.properties file
}
}
}
在ViewUserPage中,我应该能够获取在message.properties中配置的标题。像g.message(代码:' view.user.page.title')或其他方式,以便如果我在message.properties中更改,则无需更改测试用例。有什么想法吗?
答案 0 :(得分:0)
您可以向messageSource
bean询问文本内容,然后将其与请求结果进行比较。
这可能看起来像这样(responseData.errors.username
是请求的结果(即When
步骤):
Then(~'^an error message is shown that the user name is already used$') {->
assert responseData.errors.username.contains (message ('user.username.unique'))
}
message
是一个小帮助函数,用于获取消息文本:
String message (String code) {
getBean ('messageSource').getMessage (code, null, null)
}
我们将message
添加到World
对象,以便它自动按步骤提供。