小编Jor*_*sen的帖子

RSpec 存根服务对象方法

我在从 AR 对象中删除对服务对象 (QuickbooksService) 的调用时遇到问题。据我所知,该方法应该正确存根并返回我指定的值,但是当我运行规范时,我可以看到该方法被调用并且失败。

这是我正在测试的对象的类定义。

class Order < ActiveRecord::Base
  def create_invoice
    QuickbooksService.new(:estimate).create_invoice(arg1, arg2, arg3)
  end
end
Run Code Online (Sandbox Code Playgroud)

并来自 order_spec

describe("#create_invoice") do
  expect(QuickbooksService.new(:estimate)).to receive(:create_invoice).and_return(1)
end
Run Code Online (Sandbox Code Playgroud)

我也尝试过

allow(QuickbooksService.new(:estimate)).to receive(:form_invoice_create).with(anything()).and_return(1)
Run Code Online (Sandbox Code Playgroud)

1因此,该方法不是返回而是create_invoice在 QuickbooksService 内部执行。任何见解将不胜感激!

rspec ruby-on-rails

5
推荐指数
1
解决办法
5142
查看次数

标签 统计

rspec ×1

ruby-on-rails ×1