我正在测试类方法调用特定的实例方法。有没有办法做到这一点?这是我得到的最好的,但它失败了。
describe '#foo' do
let(:job) { create :job }
it 'calls job.bar' do
job.should_receive(:bar)
Job.foo
end
end
我需要确保调用正确的作业实例,而不仅仅是任何实例。我感谢任何帮助。
答案 0 :(得分:3)
您可以在.foo
获取实例的方法上使用存根。
例如:
describe '.foo' do
let(:job) { create :job }
it 'calls job.bar' do
Job.stub(:find).and_return job
job.should_receive(:bar)
Job.foo
end
end
这样做可以确保您希望调用方法的实例是.foo
实际使用的实例。
您可以为此添加期望或参数匹配器,因此:
Job.should_receive(:find).with(job.id).and_return(job)