Ich habe einen Test in rspec geschrieben, die nach dem Klicken auf einen Link für einen Pfad überprüft:Capybara - Fang nicht Angular2 URL
click_link("Dew, Muntain A")
expect(current_path).to eq(demographic_information_patient_path(1))
Hier, erhalte ich:
current_path = "/"
demographic_information_patient_path(1) = "/patients/1/demographics"
Daher ist der Test schlägt fehl. Was ich sehen kann, ist, nachdem der Link geklickt wurde, ist die nächste Seite in der Tat Demografie-Seite mit URL "/ patienten/1/demographics", aber irgendwie capybara ist nicht in der Lage, es zu finden.
HINWEIS: Wenn ich den Test und Druck request.url
in Schienen-Controller manuell versuchen, erhalte ich "/patients/1/demographics"
Einen Grund, warum ich etwas weg kann, ist die Seite getroffen zu werden ist eine Angular2 Seite, ist es aus diesem Grunde Capybara kann die richtige URL nicht finden?
Mein Tries mit Capybara:
URI.parse(current_url).request_uri #gives "/"
page.current_url #gives "/"
u = page.execute_script("window.location.url"); #gives nil as expected
Dank für die Beantwortung. Ich habe den Code wie Sie vorgeschlagen geändert, aber ich bekomme diesen Fehler: ** Fehler/Fehler: expect (Seite) .to have_current_path (demographischer_Information_Patient_Pfad (1)) erwartet # zu Antwort auf 'has_current_path?' ** –
Abhi
@Abhi Welche Version von Capybara verwenden Sie? Der 'have_current_path'-Matcher wurde vor fast 18 Monaten in Version 2.5.0 hinzugefügt, möglicherweise müssen Sie aktualisieren. Alternativ haben Sie vielleicht nicht "capybara/rspec" in Ihrem spec_helper - https://github.com/teamcapybara/capybara#using-capybara-with-rspec? –