【发布时间】: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