rspec 文档中指出我应该使用double
方法来创建测试替身。但是我可以看到即使我不使用它也可以正常工作double
。不使用有什么问题double
吗?另外,如果我不使用 double 如何MyClass
获取stub
和其他 rspec 方法?在 rspec 中运行时它们是否可用于所有对象?
require 'spec_helper'
class MyClass
def self.run
new.execute
end
def execute
'foo'
end
end
describe MyClass do
it 'should stub instance method' do
obj = MyClass.new
obj.stub(:execute).and_return('bar')
obj.execute.should == 'bar'
end
it 'should stub class method' do
MyClass.stub(:run).and_return('baz')
MyClass.run.should == 'baz'
end
end