2017-05-23 1 views
0

J'écris des tests fonctionnels UI avec Spock, Groovy et Geb implémentant le modèle d'objet page. Au cours de mon flux d'événements im naviguer loin de la page en cours pour obtenir un résultat et par conséquent, je dois changer l'objet de la page dans mon test, mais havent été en mesure de le faire le cas avec succèsChangement d'utilisation des objets page dans test - Geb Groovy Spock

Test ci-dessous:

def "Navigate to Second Page"() { 
    when: "I navigate to second page" 

    redirctButton.click() 

    then: "Second Page Url should show" 
    browser.getCurrentUrl() == secondpageUrl 
} 

def "Use method form second page"() { 
    when: "Im on second page" 
    SecondPage.performSearch("search") 

    then: "result should show" 
    SecondPage.resultBox == "" 
} 

Répondre

0

Vous devez ajouter at-checking pour vos objets de page, puis vous pouvez utiliser la méthode at pour vérifier que vous êtes sur la page attendue, rendant browser.getCurrentUrl() == secondpageUrl obsolète. L'autre effet du contrôle at est qu'il modifie la page en cours et renvoie également l'objet page pour un accès fortement typé. Si vous ne vous souciez pas de l'accès fortement typé, vous pouvez supprimer le bloc expect dans le deuxième test, il est seulement là pour vous donner accès à l'objet de page tapé.


@Stepwise 
class PageTest extends GebReportingSpec { 

def "Navigate to Second Page"() { 
    when: "I navigate to second page" 
    redirctButton.click() 

    then: "Second Page Url should show" 
    at SecondPage 
} 

def "Use method form second page"() { 
    expect: 
    def secondPage = at SecondPage 

    when: "Im on second page" 
    secondPage.performSearch("search") 

    then: "result should show" 
    secondPage.resultBox == "" 
} 
} 
+0

merci qui a fait l'affaire :) –