0

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

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.
4

1 回答 1

2

你没有存根正确的东西 - 你的错误表明有东西试图[]在你的 double 上调用方法(即数组或哈希解引用)@customer

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

你确定最后一行不应该是

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

反而?

于 2014-02-06T16:51:32.677 回答