grails gebish测试循环/次

时间:2014-02-13 10:41:52

标签: grails groovy geb

这是我的垃圾测试,我不知道它为什么不起作用。

 def "create 9 more names"(){
       def i = 0
   8.times{

   $("button", value:"newCat").click()

   waitFor { $("input", name:"name") }

   $("input", name:"name") << "gebTest"
   $("input", name:"create").click()

   waitFor { $("h1", text:"Show New Name") }

   $("a", text:"new name").click()

   waitFor {$("h1.title").text() == "Names"}
   expect: at NewNamesPage
       i++
  }

}

此测试确实有效:

 def "create name"() {

   $("button", value:"newCat").click()

   waitFor { $("input", name:"name") }

   $("input", name:"name") << "gebTest"+i
   $("input", name:"create").click()

   waitFor { $("h1", text:"Show New Name") }

   $("a", text:"new name").click()

   waitFor {$("h1.title").text() == "Names"}
   expect: at NewNamesPage

 }

所以它似乎不喜欢spock块:

  8.times {
        //do something 8 times
   }

我也尝试使用for循环。 它甚至没有启动循环。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这对你有用。此外,您不需要定义任何变量,n次应该运行块n次。希望有所帮助!

def "create 9 more names"(){
   def i = 0
   8.times{

   $("button", value:"newCat").click()

   waitFor { $("input", name:"name") }

   $("input", name:"name") << "gebTest"
   $("input", name:"create").click()

   waitFor { $("h1", text:"Show New Name") }

   $("a", text:"new name").click()

   waitFor {$("h1.title").text() == "Names"}
   expect: at NewNamesPage
    i += 1
  }

}