capybara-webkitなajaxテストが通らない
capybara-webkitでajaxのテストしておりましたが、 解決したとおもったら解決していなかった件。
何度やってもテスト通らなくておかしいなーと思っていましたが、 みごとにはまってました、ハイ
ここに書いてある通りにして、上手く解決
spec_helper.rb
RSpec.configure do |config| . . . config.use_transactional_fixtures = false config.before(:suite) do DatabaseCleaner.strategy = :truncation end config.before(:each) do DatabaseCleaner.start end config.after(:each) do DatabaseCleaner.clean end end
を追加して、無事解決。
したらば、今度はjavascriptのconfirmをテストしなければいけなくなりましたが、通し方が分からない。 検索してみると、どうやら
expect do find('#delete_note').click page.driver.accept_js_confirms! end.to change(Note,:count).by(-1)
で、OKらしい!
その後、再びどーしてもテストが通らなくて、どうしたことかと絶望すること数時間() いろいろとググっていると launcyなるものを発見。ここ
save_and_open_page is a nifty way to see exactly what your web page looks like at a certain point. Just insert it anywhere in the test. It’s great for debugging:
つまり、save_and_open_pageに至った時点のページ状態をブラウザで目視で確認することができる!と。 用法も簡単。
it{ save_and_open_page}
と入れるだけ。
早速使ってみたところ、速攻で原因発見しました。 どうやら、リダイレクトされた別のページにずっとspec掛け続けていたようで笑
なんとか、解決してテストを書き続けるのでした。