Grails Geb/Spock中包含多个页面的流的功能测试
我有一些用Geb/Spock编写的功能测试,测试我的应用程序中几个类似但不同的用户旅程。在继续测试其特定场景之前,每个测试都会进行一次新的用户注册 我的问题是,产生这种流的最佳方式是什么 我已经看过了,它描述了如何封装登录网站的操作-这是一个很好的开始,但我真的希望能够封装浏览一系列页面。我想创建这样一个方法:Grails Geb/Spock中包含多个页面的流的功能测试,grails,module,spock,geb,Grails,Module,Spock,Geb,我有一些用Geb/Spock编写的功能测试,测试我的应用程序中几个类似但不同的用户旅程。在继续测试其特定场景之前,每个测试都会进行一次新的用户注册 我的问题是,产生这种流的最佳方式是什么 我已经看过了,它描述了如何封装登录网站的操作-这是一个很好的开始,但我真的希望能够封装浏览一系列页面。我想创建这样一个方法: public String registerNewUser(String newUsername, String newUserPassword) { //step throug
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.0to()
方法以及to:
模板选项在检查器验证时执行隐式-请参阅。我遇到了一个类似的问题,我使用基本规范思想解决了这个问题,这一点非常好。如果您感兴趣,那么看看我的问题(我更新了)这不是一个坏主意,尽管最后我实际上选择创建一个静态访问Browser.getBrowser()的常规类,然后使用浏览器实例使用at()、to()和waitFor()。我真的很喜欢页面对象生成器模式——我以前从未见过这种模式。