测试 Stripe 与 js: true 一起工作,但它使其他组件无法正常工作

Testing Stripe works with js: true, but it makes other components work incorrectly

测试条带框架需要打开 Javascript,但是当我在 it 方法中发送 js: true 时,其他组件如 visitfill_in 停止以他们以前的方式工作。

这是我的代码:

def sign_up(subdomain)
    visit root_url(subdomain: false)
    visit new_account_path
    fill_in 'Name', with: 'Ryan'
    fill_in 'Email', with: 'test@test.com'
    fill_in 'Password', with: 'password'
    fill_in 'Password confirmation', with: 'password'
    fill_in 'Subdomain', with: subdomain
    click_button 'Create Account'
end

sign_up 方法中,visit new_account_pathjs: true 之前有效,但现在无效。

我正在用以下方法js: true

it 'shows the user can upgrade his account with valid card number, expiration and CVC', js: true do
    fill_in "card_number", :with => "4242424242424242"
    fill_in "card_expiry_month", :with => "05"
    fill_in "card_expiry_year", :with => "2015"
    fill_in "card_cvc", :with => "123"
    click_button 'Upgrade Your Account'
    expect(page).to have_content "Update Your Payment Information"
end

我已经找了很长时间的解决方案,但至今无法解决这个问题。

根据您的评论,您收到来自 stripe 的 API 的错误:Stripe::InvalidRequestError

根据他们的 API (https://stripe.com/docs/api#errors):

Invalid request errors arise when your request has invalid parameters.

我敢打赌,您对 Stripe 的请求实际上有问题,而不是您编写的 Capybara (?) 规范。

我写了一篇博客 post,内容是关于使用 RSpec 和 Capybara 为 Stripe 编写验收测试。你可以view it here