Spock测试显示groovy.lang.MissingPropertyException
我有下面的斯波克测试。我首先进入登录页面,然后单击登录按钮而不输入电子邮件和密码来验证错误消息。我将添加其他步骤,如电子邮件,但没有密码和电子邮件与不正确的密码,但我首先需要让这个测试工作Spock测试显示groovy.lang.MissingPropertyException,groovy,spock,geb,Groovy,Spock,Geb,我有下面的斯波克测试。我首先进入登录页面,然后单击登录按钮而不输入电子邮件和密码来验证错误消息。我将添加其他步骤,如电子邮件,但没有密码和电子邮件与不正确的密码,但我首先需要让这个测试工作 package loginPageTests import Pages.loginPage import geb.Page import geb.spock.GebReportingSpec class invalidLoginSpec extends GebReportingSpec { de
package loginPageTests
import Pages.loginPage
import geb.Page
import geb.spock.GebReportingSpec
class invalidLoginSpec extends GebReportingSpec {
def "Go to login page"() {
when:
Page loginPage = to loginPage
waitFor { loginPage.loginButton.isDisplayed() }
then:
at loginPage
}
def "Try to log in without email or password"() {
when:
loginPage.loginButton.click()
then:
at loginPage
assert loginPage.loginError.text() == "Please enter your email and password."
}
}
和下面的页面对象
package Pages
import geb.Page
class loginPage extends Page {
static url = 'login/'
static at = { title == "Login to TB"}
static content = {
loginButton {$("#loginButton")}
loginError(wait:true) {$("#loginError")}
}
}
第一个方法成功运行,但当第二个方法尝试运行时,我出现了此错误
groovy.lang.MissingPropertyException:没有这样的属性:loginButton
对于类:Pages.loginPage
属性loginButton位于loginPage页面对象中,因此我不确定为什么会发生此错误 您与页面交互的方式不是惯用的,但要回答所问的问题
您已将
loginPage
定义为第一个测试方法中的局部变量,然后尝试在第二个测试方法中引用超出范围的变量。请对类使用普通驼峰格,例如loginPage
和invalidLoginpec
。您可能需要逐步查看@以了解您要做的事情。