Sha256: 9efb72e90d93c33f93fa1028a43b7ff0ec5093e27156bcdc39c22565dc54d52c

Contents?: true

Size: 1.71 KB

Versions: 4

Compression:

Stored size: 1.71 KB

Contents

require 'helper'

class SimpleAssertionsAssertRaisesTest < Spec
  class MyError < StandardError
    attr_reader :param

    def initialize(param)
      super "Param: #{param}"
      @param = param
    end

    def paula
      :sir
    end
    private :paula

    def enemy
      :war
    end
    protected :enemy
  end

  def my_error!(param=nil)
    raise MyError, param
  end

  include SimpleAssertions::AssertRaises

  context :assert_raises do
    test "match param exactly" do
      assert_raises MyError, :param => "string" do
        my_error! "string"
      end
    end

    test "match param via regexp" do
      assert_raises MyError, :param => /string/i do
        my_error! "my STRING rocks"
      end
    end

    test "match param class" do
      assert_raises MyError, :param => MyError do
        my_error! MyError
      end
    end

    test "param does not match on === operator" do
      assert_raises MiniTest::Assertion, :message => /"foo" to match "bar"/ do
        assert_raises MyError, :param => "foo" do
          my_error! "bar"
        end
      end
    end

    test "exception does not respond to invalid param" do
      assert_raises MiniTest::Assertion, :message => /to respond to #invalid/ do
        assert_raises MyError, :invalid => "foo" do
          my_error!
        end
      end
    end

    test "access to private exception param" do
      assert_raises MiniTest::Assertion, :message => /to respond to #paula/ do
        assert_raises MyError, :paula => :sir do
          my_error!
        end
      end
    end

    test "access to protected exception param" do
      assert_raises NoMethodError do
        assert_raises MyError, :enemy => :war do
          my_error!
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
simple_assertions-0.4.1 test/simple_assertions_assert_raises_test.rb
simple_assertions-0.4.0 test/simple_assertions_assert_raises_test.rb
simple_assertions-0.3.2 test/simple_assertions_assert_raises_test.rb
simple_assertions-0.3.1 test/simple_assertions_assert_raises_test.rb