Geb / Spock是否有一种简单的方法可以确保在所有功能测试之前进行登录?
例如我的登录测试看起来像
def "login"() {
when:
to Login
and:
login(username,password)
then:
at Dashboard
where:
username | password
"X" | "X"
}
这是很多代码可以放在彼此的测试中。
答案 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 jk47的setup()
方法中是一种方法。
另一个不会将您绑定到特定继承结构的是使用JUnit rule which are supported by Spock out of the box。