2

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

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

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

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

理想情况下,我想使用 GebSpecto(SomePage)at(SomeOtherPage)样式语法。有没有办法做到这一点?

4

2 回答 2

1

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

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

此外,您可能会对页面对象构建器模式的手册部分感兴趣。请注意to:示例中如何使用模板内容选项,这意味着您不需要to Page显式使用。此外,由于 0.9.0to()方法和to:模板选项在检查器验证时隐含 - 请参阅检查

于 2013-09-14T11:06:18.537 回答
0

我有一个类似的问题,我用基本规范的想法解决了这个问题,效果很好。如果您有兴趣,请查看我的问题(我已更新)如何在 Geb grails 中设置和拆卸功能测试数据

于 2013-10-03T16:15:04.860 回答