2012-03-05 25 views
1

我是Spock和Geb的新手,並在我的Grails 1.3.7應用程序中使用它們。我有一個LoginSpec和LoginPage工作。現在我想要做的是多次執行LoginSpec,指定幾個不同的用戶名/密碼組合。我不清楚我應該如何處理這個問題。我可以使用表單的不同值反覆運行spock測試嗎?

class LoginSpec extends geb.spock.GebReportingSpec { 

    def "At the login page"() { 
    when: "we visit the login page" 
    to LoginPage 
    then: 
    at LoginPage 
    } 

    def "failed login"() { 
    when: "a user goes to the login page and enters invalid data" 
    to LoginPage 
    loginForm.j_username = "[email protected]" 
    loginForm.j_password = "password" 
    loginButton.click() 
    then: 
    at LoginPage 
    } 

    def "successful login"() { 
    when: "a user goes to the login page and enters valid data" 
    to LoginPage 
    loginForm.j_username = "[email protected]" 
    loginForm.j_password = "password" 
    loginButton.click() 
    then: 
    at DashboardPage 
    } 
} 

class LoginPage extends Page { 

    static url = "login/auth" 

    static at = { heading == "sign in" } 

    static content = { 
    heading { $(".page-header>h2").text() } 
    loginButton(to: [DashboardPage, LoginPage]) { $('#sign_in').find("button.primary") } 
    loginForm { $('#loginForm') } 

    } 
} 

回答

3

可以使用Spock的數據支持驅動測試:

def "successful login"() { 
    when: "a user goes to the login page and enters valid data" 
    to LoginPage 
    loginForm.j_username = username 
    loginForm.j_password = password 
    loginButton.click() 

    then: 
    at DashboardPage 

    where: 
    username  | password 
    "[email protected]" | "password" 
    "foo"   | "bar"   
} 
+0

它必須是這麼簡單嗎?我會稍微補充一點,然後回報。謝謝@Peter。 – Gregg 2012-03-05 16:58:09

相關問題