Module: Test::Unit::Assertions

Module | Test::Unit::Assertions
In: | lib/active_support/core_ext/test/unit/assertions.rb

### Methods

assert_difference assert_no_difference

### Public Instance methods

assert_difference(expressions, difference = 1, message = nil) {|| ...}

Test numeric difference between the return value of an expression as a result of what is evaluated in the yielded block.

      assert_difference 'Article.count' do
        post :create, :article => {...}
      end

An arbitrary expression is passed in and evaluated.

      assert_difference 'assigns(:article).comments(:reload).size' do
        post :create, :comment => {...}
      end

An arbitrary positive or negative difference can be specified. The default is +1.

      assert_difference 'Article.count', -1 do
        post :delete, :id => ...
      end

An array of expressions can also be passed in and evaluated.

      assert_difference [ 'Article.count', 'Post.count' ], +2 do
        post :create, :article => {...}
      end

A error message can be specified.

      assert_difference 'Article.count', -1, "An Article should be destroyed" do
        post :delete, :id => ...
      end

assert_no_difference(expressions, message = nil, &block)

Assertion that the numeric result of evaluating an expression is not changed before and after invoking the passed in block.

      assert_no_difference 'Article.count' do
        post :create, :article => invalid_attributes
      end

A error message can be specified.

      assert_no_difference 'Article.count', "An Article should not be destroyed" do
        post :create, :article => invalid_attributes
      end

[Validate]