我在使用 selenium 使用 rspec 测试贝宝授权的功能时遇到了一个奇怪的问题。从贝宝返回我的网站时,它声称找不到具有该特定 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
有人有想法么?