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
メソッドをいれても関係なかったのもわかる