部分替身

当 `verify_partial_doubles` 配置选项被设置时,对 object_double 执行的相同参数和方法存在性检查也会对 部分替身 执行。除非有充分的理由,否则你应该设置此选项。默认情况下,仅出于向后兼容性考虑才将其关闭。

复制现有对象

给定一个名为“spec/user_spec.rb”的文件,其内容为

class User
  def save; false; end
end

def save_user(user)
  "saved!" if user.save
end

RSpec.configure do |config|
  config.mock_with :rspec do |mocks|
    mocks.verify_partial_doubles = true
  end
end

RSpec.describe '#save_user' do
  it 'renders message on success' do
    user = User.new
    expect(user).to receive(:wave).and_return(true) # Typo in name
    expect(save_user(user)).to eq("saved!")
  end
end

我运行 `rspec spec/user_spec.rb`

那么输出应包含“1 example, 1 failure”。