【问题标题】:Spock test showing groovy.lang.MissingPropertyExceptionSpock 测试显示 groovy.lang.MissingPropertyException
【发布时间】:2017-12-05 17:17:24
【问题描述】:

我有以下 spock 测试。我首先进入登录页面,然后在不输入电子邮件和密码的情况下单击登录按钮以验证错误消息。稍后我将添加其他步骤,例如电子邮件但没有密码和密码错误的电子邮件,但我首先需要让这个测试工作。

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 页面对象中,所以我不确定为什么会发生此错误。

【问题讨论】:

  • 请使用普通的驼峰式来上课,例如: LoginPageInvalidLoginSpec。您可能想查看 @Stepwise 以了解您正在尝试做的事情。

标签: groovy spock geb


【解决方案1】:

您与页面交互的方式不是惯用的,但要回答所提出的问题...

您已将loginPage 定义为第一个测试方法内的局部变量,然后尝试在超出范围的第二个测试方法内引用它。

【讨论】:

    猜你喜欢
    • 2018-11-30
    • 2017-12-19
    • 1970-01-01
    • 1970-01-01
    • 2014-04-05
    • 2015-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多