使用 groovy 中的其他测试与 geb 和 spock 创建一个新测试

Create a new test using other test in groovy with geb and spock

我在我的网页上创建了一个购票测试BuyTicketSpec.groovy。

  class BuyTicketsSpec extends GebReportingSpec {

    def (String country, String userType, String type, String payment, String env) {

    }
}

我创建了其他测试来修改 ModifyTicketSpec 或删除工单 DeleteTicketSpec。

我可以创建一个 geb 测试来将这个测试合二为一吗?例如 FullCycleTicket.groovy 测试我尝试购买、修改和删除机票的位置。

      class FullCycleTicketsSpec extends GebReportingSpec {

        def (String country, String userType, String type, String payment, String env) {

setup:
//initialize

when:
//launch BuyTicketSpec
//launch ModifyTicketSpec
//launch DeleteTicketSpec

then:
//

where:

        }
    }

是否可以使用 geb 和 spock 框架?

感谢您的帮助。提前谢谢你。

您没有理由不能对一系列 when: / then: 对进行排序,以在您的流程中一直进行测试。我不相信你可以直接调用其他规范。

setup:
    // initialize

when:
    // buy ticket spec when code

then:
    // buy ticket spec then code

when:
    // modify ticket spec when code

then:
    // etc...

从您的规格(FullCycleSpec 和 "partial" 规格(如 BuyTicketSpec).

我不会尝试重用规范,因为规范有一个生命周期,而且是执行它们的测试框架。这就是为什么你最好在非规范中使用通用代码 class.

正如 erdi 所说,在重用公共代码时,特征非常有用。

简单示例:

class TestBasicStuff extends GebReportingSpec implements StuffMeister {
    def 'do some basic stuff'() {
        someBasicStuff()
    }
}

class TestNotOnlyBasicStuff extends GebReportingSpec implements StuffMeister {
    def 'do not only basic stuff'() {
        someBasicStuff()
        someAdvancedStuff()
    }
}

trait StuffMeister {
    def someBasicStuff() { 'basic' }
    def someAdvancedStuff() { 'not basic' }
}