Я пишу тестовые примеры огурца в грабли. Я хочу получить доступ к сообщениям, которые настроены в файле message.propertiesИспользование сообщений I18N в тестах огурцов в Грайле
например. У меня есть свойство настраивается в файле 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 I должен иметь возможность получить заголовок, который настроен в message.properties. Что-то вроде g.message (код: 'view.user.page.title') или каким-либо другим способом, чтобы, если я изменяю message.properties, не нужно менять тестовый пример. Есть предположения?
Возможно, это не ответ на ваш вопрос, но вы не должны полагаться на файл messages.properties в своих тестах. Лучше добавить некоторую информацию, связанную с тестированием, в ваш html, например '
...' и проверить существование 'body.test-edit-user'. –Спасибо за комментарий. Не могли бы вы рассказать мне, почему мы не должны полагаться на экстернализацию сообщений? Я не уверен, что добавление класса к определенному элементу и утверждение его было бы хорошей идеей. Здесь мое требование - проверить название страницы. –
Каждый раз, когда кто-то меняет/обновляет заголовок, ваш тест не удастся. Я считаю, что имеет смысл проверить правильность логики приложения (отображается правая страница). Проверка переводов должна проводиться переводчиками, а не программистами. В конце концов, если вам действительно нужно проверить этот заголовок, лучше проверить «ключ», который используется для целей перевода, а не сам перевод. Возможно, вы могли бы заменить поведение g.message на тестовой фазе, чтобы всегда возвращать «код»? –