2013-03-19 3 views
1

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

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

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

+0

Использование Isat, кажется, дает мне WaitTimeoutException whwen не на странице ... –

+0

Обновления комментарий: Я считаю, что WaitTimeoutException происходит потому, что мой на-Checker проверяет наличие элемент, который не найден на странице. –

ответ

2

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

Пример:

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

    then: 
    !isAt(BadPage) 
} 
Смежные вопросы