ajax な動作をテストしようとしたとき
all("input")[0].set("title1"
click_on 'レビューを投稿する'
みたいなテストを書いた。
このテストがとおったりとおらなかったり
適当に speep メソッドを散りばめても同じだった
開発環境
ruby 2.6.5
Ruby on Rails 5.2.5
前提
rSpec が導入されている
レビューを投稿するというボタンをクリックすると ajax でデータが反映される
結論
以下みたいにしたらうまくいくようになった
page.all("input")[0].set("title1")
click_on 'レビューを投稿する'
all に page をつけてやる
推測なんだけど、all だけだと範囲がひろすぎて set メソッドの処理が追いついてないのかも
それならメソッド内での処理の話だから sleep メソッドをいれても関係なかったのもわかる