跨多个安装文件的Geb测试使用方法

时间:2017-08-19 17:08:59

标签: groovy spock geb

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

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

    }

}

1 个答案:

答案 0 :(得分:1)

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

例如,签到特征:

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