我有一些用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)
样式语法。有没有办法实现这个目标?
答案 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