Stubbing条带订阅错误

时间:2014-02-06 16:46:06

标签: ruby-on-rails ruby stripe-payments stripe.net

我正在尝试测试我的付款流程,而且我遇到了存根订阅的问题,这是我收到的错误消息:

Double "Stripe::Customer" received unexpected message :[] with ("subscription")

这是存根订阅代码的相关部分:

@subscription = double('Stripe::Subscription')
@subscription.stub(:id) { 1234 }
@customer.stub(:subscription) { [@subscription] }

当我尝试使用测试卡付款并且它有效时,但我希望进行自动化测试以防万一可能影响付款的更改

修改:

根据mcfinnigan的建议,我将最后一段代码更改为:

@customer.stub(:[]).with(:subscription).and_return { [@subscription] }

现在我收到了这个错误:

Double "Stripe::Customer" received :[] with unexpected arguments
  expected: (:subscription)
       got: ("subscription")
 Please stub a default value first if message might be received with other args as well.

1 个答案:

答案 0 :(得分:2)

你没有找到正确的东西 - 你的错误表明有人试图在你的双[]上调用方法@customer(即数组或散列解除引用)。

检查您的代码,看看您是否在任何地方向客户对象发送[]

你是否肯定最后一行不应该是

@customer.stub(:[]).with(:subscription).and_return { [@subscription] }

代替?