CapybaraとPoltergeistを使用した場合にDBの内容がビューに反映されない
Poltergeistを使用した場合、Capybaraのテストケースの挙動が不思議です。
まず最初に、Poltergeistを使用しない場合、Capybaraのテストケースはsuccessです。
before { create(:user) }
it 'test' do
visit root_path
expect(page).to have_content 'ユーザは1人です'
end
テスト対象のviewでは
ユーザは<%= User.count %>
人です
のような記述です。
JSのテストを行いたいため、
it 'test', js: true do
とすると、表示が「ユーザは0人です」のようになり、テストがfailureとなります。
(page.save_screenshotにて確認)
どうやらbeforeで作成したユーザがうまくviewで取得できてないようです。
expect(User.count).to eq 1
はsuccessなので、DBに書き込みは行われています。
Poltergeistの代わりにcapybara-webkitでも同じ状況です。
どうすればテストを通すことができるでしょうか?