【问题标题】:RSpec Spy method issueRSpec Spy 方法问题
【发布时间】:2018-02-09 03:02:28
【问题描述】:
it "calls #create if #find_or_create is called and no matching record exists" do
  snack = class_spy(Snack, find_by_name: nil)
  attrs = {name: 'test', location: 'test'}
  snack.find_or_create(attrs)
  expect(snack).to have_received(:create).with(attrs)
end

在 Snack 类中

def self.find_or_create(attrs)
  snack = find_by_name(attrs[:name])
  snack ||= create(attrs)
end

但是 create 似乎没有被调用——我想这是预期的吗?/关于我没有考虑到的任何想法?

【问题讨论】:

    标签: ruby-on-rails ruby rspec tdd


    【解决方案1】:

    我相信,你可以这样做:

    it 'whatewer' do
      expect(Snack).to receive(:create).with(attrs)
      Snack.find_or_create(attrs)
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-09
      • 2019-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多