Проверьте URL-адрес в тесте Geb/Spock

В моем функциональном тесте Spock я хочу проверить, что текущее местоположение браузера не является определенным URL-адресом. Я знаю, что могу:

try {
    at(PageWithUrlIDontWant)
    // do something
} catch (AssertionError) {
    // pass because this is the common branch
}

Однако это использует исключения для управления ветвлением. Есть ли способ, кроме at, проверить, по какому адресу находится браузер? Я пробовал page.pageUrl и browser.pageUrl, но они оба нулевые.


person Mary Beckley    schedule 19.03.2013    source источник
comment
Использование isat, кажется, дает мне исключение WaitTimeoutException, когда его нет на странице...   -  person Mary Beckley    schedule 20.03.2013
comment
Обновление комментария: я считаю, что происходит исключение WaitTimeoutException, потому что моя программа проверки проверяет наличие элемента, который не найден на странице.   -  person Mary Beckley    schedule 20.03.2013


Ответы (1)


Начиная с Geb 0.7.0, в классе Browser появился новый метод isAt(). GebSpec прокси-методОтсутствуют вызовы его Browser экземпляра, поэтому этот метод доступен в вашем тесте. Этот метод возвращает true/false вместо того, чтобы генерировать исключение, и его следует показать.

Пример:

def "navigating to GoodPage doesn't up at BadPage"() {
    when:
    to GoodPage

    then:
    !isAt(BadPage)
}
person Rhysyngsun    schedule 20.03.2013