假设我需要 stub 一个方法以便它返回当前时间: MyClass.stub(:my_method).and_return(Time.now.utc)
问题是,这个 stub 在 stub 声明时返回时间,而不是在我运行 MyClass.new.my_method 时返回。
有没有办法在调用方法时使 stub 运行?
最佳答案
将一个 block 传递给 and_return
,它会在运行时完成您想要完成的工作,就像这样......
describe MyClass do
it "runs at runtime" do
puts Time.now.utc
MyClass.stub(:my_method).and_return do
Time.now.utc
end
sleep 5.seconds
puts MyClass.my_method
end
end
关于ruby-on-rails - 在运行时而不是在 stub 声明中执行 rspec stub ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9831810/