我已在我的网页BuyTicketSpec.groovy中创建了一个购买机票的测试。
class BuyTicketsSpec extends GebReportingSpec {
def (String country, String userType, String type, String payment, String env) {
}
}
我创建了其他测试来修改ModifyTicketSpec o删除票证DeleteTicketSpec。
我可以创建一个geb测试来将此测试合二为一吗?例如FullCycleTicket.groovy test我尝试购买,修改和删除票证。
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框架?
感谢您的帮助。提前谢谢你。
答案 0 :(得分:2)
将公共代码提取到另一个类或特征,并根据您的规范调用该类的方法(FullCycleSpec
和“部分”规范,如BuyTicketSpec
)。
我不会尝试重复使用规范,因为规范具有生命周期,而且它是执行它们的测试框架。这就是为什么你最好在非规范类中使用公共代码。
答案 1 :(得分:1)
没有理由不能在以下情况下对一系列进行排序:/ then:对来测试整个过程流程。我不相信你可以直接打电话给其他规格。
setup:
// initialize
when:
// buy ticket spec when code
then:
// buy ticket spec then code
when:
// modify ticket spec when code
then:
// etc...
答案 2 :(得分:1)
正如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' }
}