在控制器上测试销毁操作

时间:2017-05-23 07:49:26

标签: ruby-on-rails testing

有没有办法测试一个destroy动作方法,如果另一个模块使用该记录(如果它是另一个表的forign键),则不应删除该记录。

我正在使用rails mini测试。

由于

2 个答案:

答案 0 :(得分:0)

您可能需要在测试部分中使用事务块。

 User.transaction do
    User.destroy!
    raise ActiveRecord::Rollback
 end

答案 1 :(得分:0)

当您尝试删除记录时,活动记录将引发异常,因为它无法删除数据。 所以你的测试应该是:

// add a record with a foreign key

begin
   post :destroy
   fail
rescue Exception => e
   // assert the exception type
end

因此,如果操作抛出异常,则测试成功否则失败。