Capybara Webkit で実行しようとしている JS 機能の仕様があります。ただし、データベース レコードを見つけることができないようです。
問題のスペックはこんな感じ
it "should allow pledging to a Hardback level", js: true do
book = FactoryGirl.create :book
visit book_path(book)
click_link "pledge-btn"
end
残念ながら、book_path(book)
本が見つからないため 404 へのリクエスト。
:js
フラグを外すと、テストに合格します。
推奨される方法として、JS 仕様に使用するようにDatabaseCleaner
セットアップしました。:truncation
# spec/support/database_cleaner.rb
RSpec.configure do |config|
config.use_transactional_fixtures = false
config.before(:suite) do
DatabaseCleaner.clean_with(:truncation)
end
config.before(:each) do
DatabaseCleaner.strategy = :transaction
end
config.before(:each, :js => true) do
DatabaseCleaner.strategy = :truncation
end
config.before(:each) do
DatabaseCleaner.start
DatabaseMetadata.create!(:sanitized_at => DateTime.now)
end
config.after(:each) do
DatabaseCleaner.clean
end
end
私はputs
テストで本を見つけることができます。
it "should allow pledging to a Hardback level", js: true do
book = FactoryGirl.create :book
visit book_path(book)
p Book.first
# => .. the book instance
click_link "pledge-btn"
end
この共有接続方法も試しましたが、問題は解決していないようです。
他に何が間違っている可能性がありますか?