2017-01-20 2 views
1

Ich automatisiere mit Gurke und Rubin. Mein Szenario ist wie folgt.Kann nicht zwei Schritt Definitionen einzeln in Gurke implementieren

Um zu implementieren, habe ich Iterationen durchgeführt, um alle Links im zweiten Schritt zu klicken.

Um dies zu tun, muss ich jedes Mal zur Startseite zurückkehren und dann verifizieren. Muss ich jedes Mal die Step-Implementierungen wiederholen oder kann ich den dritten Schritt überspringen und alles im zweiten Schritt selbst implementieren?

Antwort

1

Sie in einer Tabelle tun können, finden Sie unter:

When(/^member should ensure that links in the table go to correct url$/) do |table| 
    # table is a Cucumber::Core::Ast::DataTable 
    links = table.raw 

    links.each do |line| 
     link  = line[0] 
     target_url = line[1] 

     click_link(link) 

     url = page.current_url 
     expect(url).to include target_url 
    end 
end 
+0

Danke. Versuche das jetzt. – Rohin

+0

@Rohin hoffe, Sie akzeptieren die Antwort. –

1

Ich mag einen etwas weniger zwingend notwendig Ansatz:

Background: Member should open homepage 
     Given member goes to home page 

    @javascript 
    Scenario: Member should go to correct url by clicking links in head menu 
    Then member should ensure that links in the table go to correct url 
     | Spor Giyim   | /spor-giyim   | 
     | Kadın    | /kadin     | 
     | Erkek    | /erkek     | 
     | Ayakkabı & Çanta | /ayakkabi-canta  | 

Ruby-Teil so sein sollte Oder vielleicht entspricht es dem Alt-Text, oder Sie stimmen die URLs oder etwas in diesen Zeilen überein. Ich denke, ein oben aufgeführter Ansatz macht es so, dass neue Elemente, die auf der Seite hinzugefügt werden, nicht überprüft werden, und alles, was herunterfällt, wird überprüft.

Wenn Sie es zwingend machen und eine Liste haben möchten, würde ich überprüfen, dass nur diese Links angezeigt werden und dass es einen Fehler auslöst, wenn ein neuer Link unerwartet angezeigt wird.

Verwandte Themen