На веб-сайте, на котором я хочу протестировать, есть целевая страница, в которой предлагается выбрать язык. Вы можете пропустить этот вопрос, добавив дополнительный параметр в URL-адрес. Я хочу протестировать это поведение с Geb
и Spock
в качестве основы тестирования.Обработка перенаправлений и неявных утверждений
Так у меня есть целевая страница с выбором языка:
class LanguageSelectionPage extends Page {
static url = "http://localhost:8080/registration/"
static at = { $("form#languageForm") }
}
На второй странице, где она перенаправляет:
class InsertCardReaderPage extends Page {
static at = { welcomeTitle1 }
static content = {
welcomeTitle1(wait: true, cache: false) { $("#eidWelcomeTitle1") }
welcomeTitle2(wait: true, cache: false) { $("#eidWelcomeTitle2") }
}
}
(я удалил некоторые методы из вставленного кода)
Это мой тест:
given:
to LanguageSelectionPage, "09";
expect:
at InsertCardReaderPage;
«09» - дополнительный параметр в URL-адресе, когда этот доступен, вы будете немедленно перенаправлены сервером (перенаправление http, так что страница изменится) до InsertCardReaderPage
. Теперь моя проблема в том, что оператор to
выполняет неявное утверждение в закрытии at
. Это не удается, потому что вы уже перенаправлены со страницы.
Есть ли способ условно отключить это неявное утверждение в этом случае? Или любое другое предложение по настройке страниц? Я довольно новичок в Geb
и не могу найти документацию, которая, кажется, мне помогает в этом случае.
Would используя страницу без на утверждение сделать трюк? – twinj
Я не вижу в этом жизнеспособного варианта. В 99% моих тестов я хочу убедиться, что вы начинаете с 'LanguageSelectionPage'. Мне нравится функция, которую мне не всегда нужно делать явное утверждение, чтобы проверить это. – ChristopherS
Просто небольшое примечание, кеш: false по умолчанию, вам не нужно явно указывать его – erdi