セレンを使用してrspecでpaypal認証をテストする機能で奇妙な問題が発生しています。Paypal からサイトに戻ると、その特定の ID で必要なデータが見つからないと表示されますが、別のデータが見つかったようです。テストでデータを端末に出力したところ、そこにありました。spec_helper の環境を開発に変更したとき (これが悪いことはわかっています)、それは機能しました。
エラーは次のとおりです。
Couldn't find PaypalPreapproval with id=1
そして、これが私のコントローラーのコードです
def show
user = User.find(params[:user_id])
preapproval = PaypalPreapproval.find(params[:id])
preapproval.activate
send_welcome_message(user) if user.addresses.count == 1
end
エラーを引き起こしているのは PaypalPreapproval.find(params[:id]) ですが、上記の行はその ID を持つユーザーを見つけることができるようです。
これは、私の spec_helper で機能する一時的な修正です
if Capybara.current_driver == :selenium
ENV["RAILS_ENV"] ||= 'development'
else
ENV["RAILS_ENV"] ||= 'test'
end
誰にもアイデアはありますか?