小编Eri*_*erg的帖子

如何使用Ruby on Rails在Stripe中测试未付费订阅?

我正在尝试在我的Rails应用程序中测试场景,其中客户允许订阅转为"未支付"(通常是因为卡片已过期并且在Stripe重试收费的两周内未更新)并且最终到处都是更新卡并重新激活帐户.我相信我的逻辑是正确的(更新卡并支付每张未付的发票),但我希望能够测试它,或者更好的是,写一些RSpec测试(功能测试和可能的控制器测试).问题是,我无法弄清楚如何创建一个订阅"未付"的模拟情况.(我想我可以使用过期卡创建一堆帐户并等待两周时间进行测试,但这不是一个可接受的解决方案.我甚至无法仅为"测试"上下文更改订阅重试设置以加快进程. )我发现了stripe-ruby-mock但我无法手动设置订阅的状态.

这是我尝试过的:

plan = Stripe::Plan.create(id: 'test')
  customer = Stripe::Customer.create(id: 'test_customer', card: 'tk', plan: 'test')

  sub = customer.subscriptions.retrieve(customer.subscriptions.data.first.id)
  sub.status = 'unpaid'
  sub.save
  sub = customer.subscriptions.retrieve(customer.subscriptions.data.first.id)
  expect(sub.status).to eq 'unpaid'
Run Code Online (Sandbox Code Playgroud)

这是stripe-ruby-mock的结果:

Failure/Error: expect(sub.status).to eq 'unpaid'

   expected: "unpaid"
        got: "active"
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails stripe-payments

5
推荐指数
2
解决办法
2664
查看次数

标签 统计

rspec ×1

ruby-on-rails ×1

stripe-payments ×1