2012-03-05 59 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

相关问题