当我使用单独的辅助函数时,为什么我的GEB脚本会失败?

时间:2014-06-09 23:03:40

标签: groovy spock geb

我正在尝试使用Gradle运行GEB测试;如果我从一个方法运行所有东西但是如果我使用辅助函数则失败,它可以正常工作:

方案1有效:

def "Select ORG Unit and save the invoice and Delete it"() {            
    when: "We click arrivals drop-down link"
        waitFor { inprogtoArrivals.isDisplayed() }

    then: "Click on the Arrivals Tab"
        waitFor { $('#arrivalsTab').find("a").click() }

        Browser.drive {
                go driver.currentUrl
            }
        waitFor { createInvoice.click() }
}

无效的情景2:

def uploadInvoice() {

    when: "We click arrivals drop-down link"
        waitFor { inprogtoArrivals.isDisplayed() }

    then: "Click on the Arrivals Tab"
        waitFor { $('#arrivalsTab').find("a").click() }
}

def "Select ORG Unit and save the invoice and Delete it"() {            
    when:           
        uploadInvoice()
        Browser.drive {
                go driver.currentUrl
            }
    then:
        waitFor { createInvoice.click() }
}

在这里,它无法处理uploadInvoice()并失败。有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您不能在辅助方法中使用when:then:块,因为这些块是Spock用于区分特征(测试)方法和常规方法的块。您使用这些块的事实意味着uploadInvoice()是一个测试。