来自多个设置文件的 Geb 测试使用方法

Geb test use method from across multiple setup files

我有多种方法分散在多个规范文件中,想在一次测试中使用它们。如何从另一个规范文件调用该方法?是否可以扩展多个规范文件?

class MyTestSpec extends Page1Spec {

    def 'first part of test"() {

        Page2Spec.methodInPage2Spec() // TRYING TO USE METHOD IN ANOTHER FILE
        Page3Spec.methodInPage3Spec() // Trying to use method in another file

    }

}

如果您有想要跨多个规范使用的方法,请考虑使用特征:

例如,登录特征:

trait SignInTrait  {

    MyPage loginAs(String username, String password) {

        to SignInPage

        //login etc

        browser.at(MyPage)
    }
}

可以添加到任何规格:

class MySpec extends GebReportingSpec implements SignInTrait  {

    def "I can do stuff"(){

        when: "i do stuff"

            //call trait method
            def myPage = loginAs("myname", "mypassword")

        then: "blah"

            //some code
    }
}

您可以添加多个用逗号分隔的特征:

class MySpec extends GebReportingSpec implements SignInTrait, AnotherTrait