を「保存」click_buttonに提出するアクションを完了するのを待つことはありません:カピバラは、私は以下のRSpecのフラグメントを持つ
describe "Save should create a ClassificationScheme" do
subject { lambda { click_button "Save"; sleep 1 } }
it { should change(ClassificationScheme, :count).by(1)
end
「スリープ1」カピバラなしで保存で発生するアクションを待ちません。ボタンを押してスペックが失敗します。睡眠1とOKですが、より良い解決策はありますか?このテストは、セレンwebdriverをを使用して、Firefoxで動作していることを
注意、。
マイバージョン:
- レール4.1.12
- RSpecの2.99.0
- カピバラ2.4.4
- セレンwebdriverを3.2.1
- のFirefox 51.0.1
wait_for_ajaxは、より多くのライブラリが/フレームワークはjQueryのを使用するのではなく、プレーンなJSに移動し、特にとして、非常にまれに使用されなければならない松葉杖です。正しい解決策は、ページ上の視覚的な変化に対する期待を設定することです。 –
私は同意しますが、質問にはサーバー側の変更のテストしか含まれていませんでした。理想的には、ビジュアルインジケータが存在し、それがフィーチャ仕様が探しているものです。レコードの更新などのサーバー側の変更のテストは、要求仕様に属します。 –