我想这样做:
@vehicle.should_receive(:park)
@vehicle.stub!(:park)
Vehicle.any_instance.stub(:park)
# etc.
这样我就可以验证交互或在其他规范中使用状态机,而不需要实际更改状态的开销…
我怎么能做到这一点?
最佳答案
使用上面提到的任何方法。注意,我认为在rspec的某些版本中,直接截短,或者用应该接收将替换所述截短方法的主体。如果你以后检查副作用,它们就不会出现了。
通常我都和他一起工作。
@vehicle.should_receive(:park) do
@vehicle.state = :parked
end
expect do
@person.exit_vehicle
end.should change(@vehicle.state).from(:driving).to(:parked)
关于ruby-on-rails - 您如何 stub /期待state_machine事件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10884213/