Szu*_*ron 3 automated-tests geb
有没有办法在测试之间等待一段时间?我需要一个解决方案来弥补服务器滞后.创建记录时,在我的环境中可以搜索记录之前需要一点时间.
在下面的代码示例中,如何在第一次测试和第二次测试之间等待30秒,并且在第二次测试和第三次测试之间没有等待时间?
class MySpec extends GebReportingSpec {
// First Test
def "should create a record named myRecord"() {
given:
to CreateRecordsPage
when:
name_field = "myRecord"
and:
saveButton.click()
then:
at IndexPage
}
// Second Test
def "should find record named myRecord"() {
given:
to SearchPage
when:
search_query = "myRecord"
and:
searchButton.click()
then:
// haven't figured this part out yet, but would look for "myRecord" on the results page
}
// Third Test
def "should delete the record named myRecord"() {
// do the delete
}
}
Run Code Online (Sandbox Code Playgroud)
您可能不想等待一段时间 - 这会使您的测试变慢.理想情况下,您希望在添加记录后立即继续.您可以使用Geb waitFor {}来轮询要满足的条件.
// Second Test
def "should find record named myRecord"() {
when:
to SearchPage
then:
waitFor(30) {
search_query = "myRecord"
searchButton.click()
//verify that the record was found
}
}
Run Code Online (Sandbox Code Playgroud)
这将每隔半秒轮询一次,持续30秒,以便在条件完成后立即通过,如果在30秒后仍未完成,则将失败.
要查看您在设置等待时间和间隔时有哪些选项,请参阅The Book of Geb中的等待部分.您可能还想查看有关块中隐式断言waitFor的部分.
如果你的第二个特征方法依赖于第一个特征方法的成功,那么你应该考虑使用@Stepwise来注释这个规范.