2017-12-05 20 views
1

다음과 같은 spock 테스트가 있습니다. 먼저 로그인 페이지로 이동 한 다음 이메일과 비밀번호를 입력하지 않고 로그인 버튼을 클릭하여 오류 메시지를 확인합니다. 나중에 이메일과 같은 다른 단계를 추가 하겠지만 암호가 틀리거나 암호가 틀린 전자 메일을 보내야하지만이 테스트를 먼저 수행해야합니다. groovy.lang.MissingPropertyException을 보여주는 스팍 테스트

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 페이지 개체에 있으므로이 오류가 발생하는 이유를 모르겠습니다.

+0

클래스에는 일반적인 낙타 케이스를 사용하십시오. 'LoginPage'와'InvalidLoginSpec'을 사용하십시오. 당신이하려고하는 것을'@ Stepwise'로 들여다 볼 수도 있습니다. –

답변

1
당신은 첫 번째 테스트 방법의 내부 로컬 변수로 loginPage을 정의하고 내부를 참조하기 위해 노력했다

는 페이지와 상호 작용하는 방법은 비 관용적이지만 묻는 질문에 대한 답을 ... 그것이 범위를 벗어나는 두 번째 테스트 방법의