【问题标题】:Unit Test for the New Stripe Checkout新 Stripe Checkout 的单元测试
【发布时间】:2021-02-10 14:54:59
【问题描述】:

这不是一个代码,因为我对测试真的很陌生。我已经使用 capybara 和 rspec 进行了一些单元测试,但它们都在我现有的应用程序上。然而,对于 Stripe,一旦您单击结帐按钮,您就会被重定向到他们自己的结帐页面,从那里我无法控制或访问任何页面。

基本测试代码如下:

it "visits stripe checkout" do 
    login_as(user)
    visit my_page

    click_button "Checkout"
    sleep(2) // im adding sleep to delay it since there's a bit of loading once checkout is clicked

    // From here I cant access anything anymore such as
    expect(page).to have_selector(".ProductSummary-totalAmount", text: "$20.00")
    //Note: This is just for me to confirm Im in the page and that is the actual class name on the checkout app
end

如果有人可以帮助或指出正确的方向,我将不胜感激。如果有人可以向我展示如何在结帐页面上填写凭据的示例,那就更好了。链接也有帮助。

附:我做了我的研究,但大多数讨论都在使用旧的条带结帐,它只是一个 iframe/modal。

【问题讨论】:

  • 我认为this 可能会帮助你
  • 谢谢,但似乎没有用,click_button "Checkout"; sleep(1) 仍然不会重定向到外部条带结帐,一旦我到达那里,我需要找到一种方法来操作该页面以进行测试。

标签: ruby ruby-on-rails-5 stripe-payments capybara


【解决方案1】:

测试的一般规则是您应该测试自己的代码,而不是其他人的。测试 Stripe Checkout 会为您的测试增加不必要的复杂性并且很脆弱,如果 Stripe 更改了 Checkout 页面上的某些内容会破坏您的测试怎么办?

相反,您应该只测试您的按钮是否可以被点击并模拟来自stripe.redirectToCheckout 的可能响应。您还测试了您在创建 Checkout Session 时设置的成功和取消 URL 是否按预期呈现和工作。

【讨论】:

    猜你喜欢
    • 2020-10-05
    • 1970-01-01
    • 2021-03-26
    • 2019-09-29
    • 2021-02-20
    • 2019-09-08
    • 2021-04-02
    • 1970-01-01
    • 2010-10-09
    相关资源
    最近更新 更多