テストコード:assert_difference

railsのコントローラのテストコードで使われているメソッドです。

次のようなところで使われています。

◆createのテスト

    assert_difference('Product.count') do

      post :create, product: @update

    end

 

◆destroyのテスト

    assert_difference('Product.count', -1) do

      delete :destroy, id: @product

    end

 

要するに、assert_differenceメソッドの第1引数に渡したメソッドの値が、ブロック内で変更されることを検証します。

第2引数に変更される期待値を渡します。省略した場合は"+1"が期待値になります。