当前位置: 首页 > 知识库问答 >
问题:

在Geb规范中重用测试

包永新
2023-03-14

我试图重用我在另一个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
    }
}

共有1个答案

谭安翔
2023-03-14

有了特征,你几乎可以得到你想要的(但是测试不能在特征中工作)。您还可以考虑创建一个spec类来测试您拥有的每个页面的产品编号,然后不必担心在每个单独页面的spec类中测试该功能。

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()
    } 
}
 类似资料:
  • 我配置了一些测试,根据web应用程序中的登录尝试检查不同的消息。因为消息和输入字段将在第三次登录尝试时更改。 登录是基于向特定电话号码发送密码的两步登录,因此在第一页LoginPage中,用户介绍他们的Id和电话号码,然后将其重定向到第二页ValidationLoginPage,用户在其中介绍接收到的密码。 我想检查一下,在第二个页面中,用户只能引入三个错误的密码,在第四次尝试时,引入密码的输入将

  • 我在看一个例子,从沃尔的春靴在行动书。它是一个用Groovy编写的简单web应用程序。该项目使用Spring CLI构建、运行和测试,不使用gradle构建文件,并使用grabs.groovy文件提供H2和Thymeleaf依赖项。有两个测试班。第一个是JUnit测试,第二个是Spock规范。JUnit测试文件是: 我不擅长编写Spock测试,所以我不确定问题是什么。

  • 我有数百个用Spock编写的测试规范。所有这些都是功能测试,可以独立运行。但我遇到了一种情况,在运行其他测试之前,我需要运行一个特定的测试。 使用Junit测试套件很容易实现这一点,而且在Eclipse中非常简单。但由于我所有的测试都是groovy测试,所以在Spring IDE中为spock测试(用groovy编写)创建测试套件并不容易。 有人能分享一些关于我们如何创建测试套件、运行一些特定测试

  • 我正在用Geb(0.12.2)和Spock定义一些规范来测试我的前端。我的应用程序的登录系统依赖于我们内部IDP的SSO。一旦我进入我的应用程序的私人部分,如果以前没有在我们的IDP中登录,它将重定向到IDP主页,然后登录并重定向到您最初询问的私人URL。 注销。 删除IDP设置的cookie。 我希望初始化每一个GebSpec类,而不需要任何以前的cookie或以前GebSpec执行中的状态,并

  • 我目前正在尝试在Keras中使用批处理规范化实现一个模型。我已经成功地在训练阶段实现了它。 然而,对于测试,在通过网络进行前向传递之前,批次归一化会计算整个群体的统计信息(平均值和方差)(BN平均值和方差是预先计算的,然后保持不变;这与训练阶段相反,在训练阶段,平均值和方差由批次确定)。 我关于Keras的问题是: 假设(X, y)是整个总体。假设(X_batch,y_batch)是一个批次(整个

  • 原因是:groovy.lang.MissingPropertyException:无法将tile1解析为Pages.LoginPage的内容或导航器上下文中的属性。tile1是您忘记导入的类吗? 它在loginPage中寻找tile1,而不是主页。