0

グーグルで調べても、有効な解決策が見つかりません... Rails 3.2.11、RSpec 2.12.2 Capybara 2.0.2 を使用して、フォームの「リセットボタン」をテストしようとしています (ブラウザでテストすると正常に動作します)。

このコードを試しました

scenario "Fill form then reset it" do
  visit contact_path
  fill_in 'message_name', :with => 'abc'
  fill_in 'message_email', :with => 'abc'
  fill_in 'message_subject', :with => 'abc'

  click_on 'Reset form'

  expect(page).to find_field('message_name').value.should == ''
end

テストはこのエラーで失敗します

 expected: ""
 got: "abc"
(compared using ==)

フィールドはまったくリセットされていないようです..(ただし、ブラウザではリセットされています)

何が欠けていますか?このバージョンの Capybara または Rspec で何か新しいことはありますか?

ご協力いただきありがとうございます

4

1 に答える 1

1

私のせいで、

このタイプの機能/シナリオには、js ドライバーが必要です。

Selenium は capybara gem に含まれていますが、機能で有効にするのを忘れていました。それを機能させるには、行を変更する必要がありました

scenario "Fill form then reset it" do

これに

scenario "Fill form then reset it", :js => true do

ドキュメントhttps://github.com/jnicklas/capybara#using-capybara-with-rspecによると。これですべて正常に動作します...

それが他の誰かを助けることを願っています...乾杯

于 2013-01-30T17:36:48.687 に答える