2013-07-09 13 views
6

ich einen Test mit RSpec habe wie unterWie zu simulieren, in Rspec Drücken der Eingabetaste

describe "visitor do search" do  
    before do 
     fill_in "keyword", with: "London" 
     click_button "search_all" 
    end 

    it "should visit search result path" do 
     page.should have_selector('title', :text => "Search Result") 
    end 
end 

Ich möchte auf die Schaltfläche ‚search_all‘ entfernen und mit Ereignisse ändern wie mit der Tastatur eingeben drücken.

Wie schreibe ich Code dafür mit RSpec?

Grüße,

Antwort

4

Sie es capybara-webkit mit tun kann, was ein Capybara-Treiber ist Javascript zu testen erlaubt. Einfach das Dokument lesen, es zu installieren und es in Ihrem Projekt funktioniert, dann sollten Sie in der Lage sein, einen Klick auf der Tastatur des Codes mit diesem Stück zu simulieren:

dies hilft
keypress = "var e = $.Event('keydown', { keyCode: 13 }); $('body').trigger(e);" 
page.driver.execute_script(keypress) 

Hoffnung.

+1

Dank :) seine erstaunlich funktioniert !! –

6

einfach ein '\ n' bis zum Ende Ihrer Abfrage String:

fill_in "keyword", with: "London\n" 
+0

Sehr schön. Ich habe fast Qt mit Capybara-Webkit für diese super triviale Aufgabe installiert. Ich benutze rspec mit Capybara und das funktioniert auch: 'find ('# thing'). Set" word \ n "' – taystack