如何在RSpec中使用`allow`和`let`

时间:2014-10-21 20:04:36

标签: ruby rspec

我在RSpec中有这段代码。

before(:each) do
  @company = Company.create(price: 700)
  allow(@company).to receive(:foo){5}
end

我还可以在allow中使用let方法吗? 如果是,我该如何使用它?

2 个答案:

答案 0 :(得分:5)

怎么样

let(:company) do
  company = Company.create!(price: 700)
  allow(company).to receive(:foo){5}
  company
end

答案 1 :(得分:1)

我会添加使用tap这是一个更好的方法:

let(:company) do
  Company.create!(price: 700)
    .tap do |c|
      allow(c).to receive(:foo){5}
    end
end