0

使用 spock+geb 时,您可以通过断言断言您在预期页面上,例如:

assert title == 'Sign In'

如果断言失败,你会得到一个很好的失败跟踪:

Condition not satisfied:

title == 'Sign In'
|     |
Login false
      5 differences (28% similarity)
      (Lo)g(i--)n
      (Si)g(n I)n

但是,如果我尝试使用页面对象模式,例如:

class LoginPage extends GebPage {
    static at = { title == 'Sign In' }
}

Trace 并不能帮助解决问题:

Condition not satisfied:

at(LoginPage)
|
false

有什么方法可以使用页面对象模式并获得更多描述性的失败跟踪?

4

2 回答 2

3

根据geb邮件列表响应,当前的解决方法是:

static at = { assert title == 'Sign In'; true }

感谢大卫和卢克。

于 2011-07-21T13:44:15.137 回答
1

顺便说一句,我不确定我是否有你的问题的答案。我相信我曾在某个时候遇到过类似的问题,但随着时间的推移,其他问题变得更加重要(例如 WebDriver 是 POS 的事实)。当涉及到 Geb 等新兴库时,您不会发现 Stackoverflow 有多大用处。

最好的办法是在 Geb 的邮件列表上发布消息。你可以在这里找到它。

Geb 的创建者 Luke Daley 通常每天都会回复消息,非常乐于助人。邮件列表非常有用,尽管此时的成员数量很少。

于 2011-07-20T01:02:12.597 回答