Geb / Spock登录每个def

时间:2015-02-20 22:32:40

标签: spock geb

Geb / Spock是否有一种简单的方法可以确保在所有功能测试之前进行登录?

例如我的登录测试看起来像

def "login"() {
        when:
            to Login
        and:
            login(username,password)
        then:
            at Dashboard
        where:
            username   | password
            "X"        | "X"
    }

这是很多代码可以放在彼此的测试中。

2 个答案:

答案 0 :(得分:2)

创建一个抽象基本规范,您需要登录的所有规范都可以扩展:

abstract class LoginBaseSpec extends GebReportingSpec{

  def setupSpec(){
    when:
      to Login

    and:
      login(username, password)

    then:
      at Dashboard  
  }

超级规范中的setupSpec()方法将在扩展规范中的任何内容之前执行。

答案 1 :(得分:1)

将常用登录代码放在基本规范类as proposed by jk47setup()方法中是一种方法。

另一个不会将您绑定到特定继承结构的是使用JUnit rule which are supported by Spock out of the box