2013-03-19 103 views
1

在我的Spock功能测试中,我想测试浏览器的当前位置不是特定的url。我知道我可以这样做:检查Geb/Spock测试中的网址

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

但是,这是使用异常来控制分支。除at之外,有没有办法检查浏览器的网址?我试过page.pageUrlbrowser.pageUrl,但它们都是空的。

+0

使用ISAT似乎给了我一个WaitTimeoutException whwen它不是在页面... – 2013-03-20 15:03:41

+0

更新评论:我相信WaitTimeoutException正在发生的事情,因为我的一个在检查器检查在页面上找不到的元素。 – 2013-03-20 17:30:27

回答

2

从Geb 0.7.0开始,类Browser上有一个新的isAt()方法。 GebSpec proxies methodMissing调用它的Browser实例,所以此方法在您的测试中可用。此方法返回true/false而不是抛出异常,应该暴露。

例子:

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

    then: 
    !isAt(BadPage) 
}