2014-02-13 31 views
0

這是我的gebish測試,我不知道爲什麼它不起作用。grails gebish測試循環次數

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 

} 

所以它似乎並不像斯波克塊:

8.times { 
     //do something 8 times 
    } 

我也有嘗試它的循環。 它甚至不啓動循環。

任何想法?

+1

我*猜*是'expect:'不能在循環內 – rcgeorge23

+0

這沒有什麼區別。 (還是)感謝你的建議。 – Sagarmichael

回答

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 
    } 

}