断言表中的最后一条记录

时间:2009-09-08 23:45:28

标签: ruby-on-rails unit-testing

我试图断言在rails模型单元测试中没有删除最后一条记录。如果record.count.one,我会引发异常?是真的。最初有两条记录。

编辑: 有一个用户故事说您可以删除用户。 您无法删除您登录的用户。 (功能测试) 您无法删除最后一个用户。 (单元测试)

2 个答案:

答案 0 :(得分:0)

这里是:

  test "verify cannot destroy last user" do
    assert_raise(RuntimeError) {
      User.find(:all).select {|u| u.destroy} }
    assert_equal 1, User.count
  end

答案 1 :(得分:0)

这是我对你要问的字面翻译(我认为):

last_user = User.last
...
assert_equal last_user, User.last

这是更传统的测试代码,它不那么脆弱:

assert_difference('User.count',-1) do
  ...
end

(但Gutzofter实际上可能正在寻找你正在寻找的东西。)