Grails Geb/Spock中包含多个页面的流的功能测试

Grails Geb/Spock中包含多个页面的流的功能测试,grails,module,spock,geb,Grails,Module,Spock,Geb,我有一些用Geb/Spock编写的功能测试,测试我的应用程序中几个类似但不同的用户旅程。在继续测试其特定场景之前,每个测试都会进行一次新的用户注册 我的问题是,产生这种流的最佳方式是什么 我已经看过了,它描述了如何封装登录网站的操作-这是一个很好的开始,但我真的希望能够封装浏览一系列页面。我想创建这样一个方法: public String registerNewUser(String newUsername, String newUserPassword) { //step throug

我有一些用Geb/Spock编写的功能测试,测试我的应用程序中几个类似但不同的用户旅程。在继续测试其特定场景之前,每个测试都会进行一次新的用户注册

我的问题是,产生这种流的最佳方式是什么

我已经看过了,它描述了如何封装登录网站的操作-这是一个很好的开始,但我真的希望能够封装浏览一系列页面。我想创建这样一个方法:

public String registerNewUser(String newUsername, String newUserPassword) {
    //step through multiple pages, filling in the various registration forms
}

理想情况下,我希望使用GebSpec
to(SomePage)
at(SomeOtherPage)
样式语法。有什么方法可以做到这一点吗?

为什么不简单地将该方法放在基本规范上呢?然后可以使用Geb页面导航方法

class BaseSpec extends GebSpec {
    public String registerNewUser(String newUsername, String newUserPassword) {
        to FirstPage
        doSomethingAtFirstPage()
        ....
        to RegistrationPage
        registerUser newUsername, newUserPassword
    }
}

此外,关于的手册部分可能对您感兴趣。注意示例中如何使用
to:
模板内容选项,这意味着您不需要显式使用
来翻页。另外,由于0.9.0
to()
方法以及
to:
模板选项在检查器验证时执行隐式-请参阅。

我遇到了一个类似的问题,我使用基本规范思想解决了这个问题,这一点非常好。如果您感兴趣,那么看看我的问题(我更新了)

这不是一个坏主意,尽管最后我实际上选择创建一个静态访问Browser.getBrowser()的常规类,然后使用浏览器实例使用at()、to()和waitFor()。我真的很喜欢页面对象生成器模式——我以前从未见过这种模式。