2017-12-05 1 views
1

Ich habe den folgenden Spock-Test. Ich gehe zuerst zur Login-Seite und klicke dann auf den Login-Button, ohne eine E-Mail und ein Passwort einzugeben, um die Fehlermeldung zu bestätigen. Ich werde später weitere Schritte wie E-Mail, aber kein Passwort und E-Mail mit falschem Passwort hinzufügen, aber zuerst muss ich diesen Test zum Laufen bringen.Spock-Test zeigt 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." 
    } 
} 

und die folgende Seite Objekt

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")} 
    } 
} 

Die erste Methode erfolgreich läuft, aber ich bekomme diese Fehlermeldung, wenn die zweite Methode versucht

groovy.lang.MissingPropertyException auszuführen: Nein eine solche Eigenschaft: loginButton für Klasse: Pages.loginPage

Die Eigenschaft loginButton befindet sich im Seitenobjekt loginPage, weshalb ich nicht sicher bin, warum dieser Fehler auftritt.

+0

Bitte verwenden Sie normale Kamel Fall für Klassen, z. 'LoginPage' und' InvalidLoginSpec'. Vielleicht möchten Sie in '@ Stepwise' nachsehen, was Sie zu tun versuchen. –

Antwort

1

Die Art und Weise mit der Seite interagieren ist nicht-idiomatische aber die Frage zu beantworten ...

Sie loginPage als lokaler Variable definiert hat, innerhalb der ersten Testmethode und dann versuchte, es im Innern zu referenzieren der zweiten Testmethode, wo es außerhalb des Geltungsbereichs ist.

Verwandte Themen