ruby – Rspec mocks错误:参数数量错误

前端之家收集整理的这篇文章主要介绍了ruby – Rspec mocks错误:参数数量错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图使用Rspec来存储Stripe API,而且我遇到了一个问题.这是我的代码如下:
Stripe::Customer.should_receive(:create).with(any_args).and_raise(Stripe::CardError)

这是我得到的错误

Failure/Error: Stripe::Customer.should_receive(:create).with(any_args).and_raise(Stripe::CardError)
ArgumentError:
  wrong number of arguments (0 for 3..6)

解决方法

Stripe :: CardError需要3..6个参数,根据以下源代码
class CardError < StripeError
  ...
  def initialize(message,param,code,http_status=nil,http_body=nil,json_body=nil)

以下是github中的RSpec文档的关键文档:

expect(double).to receive(:msg).and_raise(error)
  #error can be an instantiated object or a class
  #if it is a class,it must be instantiable with no args

由于你只是提供类,而类需要参数,所以它是失败的.您需要实例化(即通过新的)并提供参数.

完整定义是在https://github.com/stripe/stripe-ruby/blob/0c281891948a793e79cc997d31918ba7f987f7ae/lib/stripe/errors/card_error.rb

原文链接:https://www.f2er.com/ruby/265484.html

猜你在找的Ruby相关文章