模块化功能测试,包括Geb / Spock中的多个页面

时间:2013-09-10 16:02:01

标签: grails module spock geb

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

我的问题是,模块化流程的最佳方法是什么?

我看过this blog,它描述了如何封装登录网站的动作 - 这是一个很好的开始,但实际上我希望能够通过一系列页面封装导航。我想创建一个这样的方法:

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

理想情况下,我想使用GebSpec to(SomePage)at(SomeOtherPage)样式语法。有没有办法实现这个目标?

2 个答案:

答案 0 :(得分:1)

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

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

此外,Page object builder pattern上的手册部分可能对您有用。请注意示例中如何使用to:模板内容选项,这意味着您无需明确使用to Page。此外,由于0.9.0 to()方法以及to:模板选项在检查程序验证中隐含,因此请参阅at checking

答案 1 :(得分:0)

我遇到了类似的问题,我用基本的规范理念解决了这个问题。如果您有兴趣,请查看我的问题(我已更新)How to setup and teardown functional test data in Geb grails