Rails rspec 使用 'stripe-ruby-mock' gem 的功能测试失败

Rails rspec feature tests are failing using 'stripe-ruby-mock' gem

在开发环境中,我可以测试条带支付(使用测试卡)。但是运行 rspec功能测试,支付失败,我收到以下错误。

Support for test mode requests made with versions of TLS lower than 1.2 has been disabled, and support in live mode will be dropped on June 13, 2018. Please initiate HTTPS connections with TLS 1.2 or later. You can learn more about this at https://stripe.com/blog/upgrading-tls.

我正在使用 capybara(v2.13) 和 poltergeist 进行功能测试。 我尝试了这个 URL 中提到的升级步骤。但是问题依旧。

由于您的问题并不清楚,因此此答案假定错误是在 "browser"(Poltergeist 使用的 PhantomJS)向 Stripe 发出请求时发生的。如果服务器向 Stripe 发出请求时发生错误,则此答案不会产生任何影响。

PhantomJS(Poltergeist 使用)有一个“--ssl-protocol”命令行选项,Poltergeist 默认为 TLSv1。您可以在您的驱动程序注册中自定义它 - https://github.com/teampoltergeist/poltergeist#customization.

Capybara.register_driver :poltergeist do |app|
  Capybara::Poltergeist::Driver.new(app, 
   phantomjs_options: ['--ssl-protocol=TLSv1.2']
  )
end