Sha256: d24988e4e3b9ce066459c4ced41419b675d5e2216bec6b8a45634bf76f9c5fbb

Contents?: true

Size: 1.71 KB

Versions: 2

Compression:

Stored size: 1.71 KB

Contents

require "spec_helper"

describe SimpleAssertions::AssertRaises do
  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)
    fail MyError, param
  end

  include SimpleAssertions::AssertRaises

  describe :assert_raises do
    it "match param exactly" do
      assert_raises MyError, param: "string" do
        my_error! "string"
      end
    end

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

    it "match param class" do
      assert_raises MyError, param: MyError do
        my_error! MyError
      end
    end

    it "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

    it "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

    it "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

    it "access to protected exception param" do
      assert_raises MiniTest::Assertion, message: /to respond to #enemy/ do
        assert_raises MyError, enemy: :war do
          my_error!
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
simple_assertions-0.7.0 spec/simple_assertions/assert_raises_spec.rb
simple_assertions-0.6.1 spec/simple_assertions/assert_raises_spec.rb