我正在尝试测试我的付款流程,而且我遇到了存根订阅的问题,这是我收到的错误消息:
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.
答案 0 :(得分:2)
你没有找到正确的东西 - 你的错误表明有人试图在你的双[]
上调用方法@customer
(即数组或散列解除引用)。
检查您的代码,看看您是否在任何地方向客户对象发送[]
。
你是否肯定最后一行不应该是
@customer.stub(:[]).with(:subscription).and_return { [@subscription] }
代替?