部分替身
当 `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”。