在 Geb 规范中重用测试
Re-using tests among Geb Specs
我正在尝试重新使用我在另一个 Geb 规范中编写的 Geb 规范测试,因此我不需要重新编写代码。我总是需要不同页面的产品编号,所以我想做类似以下的事情;
class BasePageGebSpec extends GebReportingSpec {
def firstProductOnBrowsePage(){
when:
to BrowsePage
then:
waitFor { BrowsePage }
productId { $("meta", 0, itemprop: "mpn").@content }
return productID // ???
}
}
在另一个 GebSpec 中,我希望使用上面的 firstProductOnBrowsePage
,如下所示:
class ProductDetailsPageGebSpec extends BasePageGebSpec {
def "See first products details page"(){
when:
to ProductDetailsPage, productId: firstProductOnBrowsePage()
then:
waitFor { $("h2", class:"title").size() != 0 }
assert true
}
}
如有任何帮助,我们将不胜感激,
谢谢!
使用 traits 你几乎可以得到你想要的(但是测试在特征中不起作用)。您还可以考虑创建一个规范 class 来测试您拥有的每个页面的产品编号,然后不必担心在每个单独页面的规范 class.
中测试此功能
trait BasePageGebSpec extends GebReportingSpec {
def testingFirstBrowse() {
waitFor { BrowsePage }
productId { $("meta", 0, itemprop: "mpn").@content }
return productID
}
}
class ProductDetailsPageGebSpec implements BasePageGebSpec {
def firstProductOnBrowsePage(){
when:
to BrowsePage
then:
testingFirstBrowse()
}
}
将 productId 作为内容添加到 BrowsePage
:
class BrowsePage extends Page {
static content = {
productId { $("meta", 0, itemprop: "mpn").@content }
}
}
然后在您的规范中使用它:
class ProductDetailsPageGebSpec extends BasePageGebSpec {
def "See first products details page"(){
when:
to ProductDetailsPage, productId: to(BrowsePage).productId
then:
waitFor { $("h2", class:"title").size() != 0 }
}
}
我正在尝试重新使用我在另一个 Geb 规范中编写的 Geb 规范测试,因此我不需要重新编写代码。我总是需要不同页面的产品编号,所以我想做类似以下的事情;
class BasePageGebSpec extends GebReportingSpec {
def firstProductOnBrowsePage(){
when:
to BrowsePage
then:
waitFor { BrowsePage }
productId { $("meta", 0, itemprop: "mpn").@content }
return productID // ???
}
}
在另一个 GebSpec 中,我希望使用上面的 firstProductOnBrowsePage
,如下所示:
class ProductDetailsPageGebSpec extends BasePageGebSpec {
def "See first products details page"(){
when:
to ProductDetailsPage, productId: firstProductOnBrowsePage()
then:
waitFor { $("h2", class:"title").size() != 0 }
assert true
}
}
如有任何帮助,我们将不胜感激,
谢谢!
使用 traits 你几乎可以得到你想要的(但是测试在特征中不起作用)。您还可以考虑创建一个规范 class 来测试您拥有的每个页面的产品编号,然后不必担心在每个单独页面的规范 class.
中测试此功能trait BasePageGebSpec extends GebReportingSpec {
def testingFirstBrowse() {
waitFor { BrowsePage }
productId { $("meta", 0, itemprop: "mpn").@content }
return productID
}
}
class ProductDetailsPageGebSpec implements BasePageGebSpec {
def firstProductOnBrowsePage(){
when:
to BrowsePage
then:
testingFirstBrowse()
}
}
将 productId 作为内容添加到 BrowsePage
:
class BrowsePage extends Page {
static content = {
productId { $("meta", 0, itemprop: "mpn").@content }
}
}
然后在您的规范中使用它:
class ProductDetailsPageGebSpec extends BasePageGebSpec {
def "See first products details page"(){
when:
to ProductDetailsPage, productId: to(BrowsePage).productId
then:
waitFor { $("h2", class:"title").size() != 0 }
}
}