assert_differenceとは

後続するblockの前後での差異を調べるassertかな.詳しく書いているDocumentがなかなか見つからないんだけど,has_many :through: Getting arbitrary with assert_differenceによると,下記のcodeがある場合,do~end前と後とでUserオブジェクトの個数(:count)の差が1(1)であれば通るんだそうな.

def test_create_user
  login = "bob"
  name = "Bob Dobbs"
  assert_difference(User, :count, 1) do
    bob = User.create!(:login => login, :name => name)
    assert_equal login, bob.login
    assert_equal name, bob.name
  end
end

確かに便利そうではある.

 
comments powered by Disqus