【问题标题】:How to stub a ruby class method in a module (Stripe gem)?如何存根模块中的 ruby​​ 类方法(Stripe gem)?
【发布时间】:2020-11-27 19:50:28
【问题描述】:

我有以下对 Stripe 方法的 api 调用,属于属于模块的类:

Stripe::Customer.list(email: current_email)

我想为Customer 类的任何实例模拟list 方法。我首先尝试了这个:

allow_any_instance_of(Stripe::Customer).to receive(:list).and_return([])

但我明白了:

1) {:Admin=>Admin::Turnover::BarPresenter, :type=>:model} #specs does something
     Failure/Error: allow_any_instance_of(Stripe::Customer).to receive(:list).and_return([])
       Stripe::Customer does not implement #list

不知道为什么它说not implement #list,而这正是我在嘲笑的。

【问题讨论】:

标签: ruby-on-rails rspec


【解决方案1】:

通过调用Stripe::Customer.list,你调用了一个类方法。您可以像这样allow(Stripe::Customer).to receive(:list).and_return([]) 存根Stripe::Customerlist 方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-22
    • 2020-11-16
    • 1970-01-01
    • 1970-01-01
    • 2011-03-30
    相关资源
    最近更新 更多