我有多个方法分散在多个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
}
}
答案 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