我有一个带有一些防护装置的状态机来防止特殊的状态转换。 在我的规范中,我试图期待这样的防范违规错误:
expect(violate_guard).to raise_exception
因此,我在规范测试中收到了正确的错误:
失败/错误:期望(my_model.change_event).to raise_exception AASM :: InvalidTransition: 活动' change_event'无法转换为' current_state'
我想知道如何更改规格以获得满意的测试?
答案 0 :(得分:2)
expect { violate_guard }.to raise_error
答案 1 :(得分:1)
我不太了解。 如果希望方法包装转换违规,则必须在规范
中定义方法def violate_guard
job = Job.new
job.run ## <= invalid transition
end
然后你使用spec中的方法
expect { violate_guard }.to raise_error