test/assertions_test.rb in assert-0.1.0 vs test/assertions_test.rb in assert-0.2.0

- old
+ new

@@ -1,30 +1,29 @@ require 'assert' -class Assert::Assertions::BasicTest < Assert::Context +module Assert::Assertions + class BasicTest < Assert::Context - desc "An assert context" - setup do - @context_class = Factory.context_class - @context = @context_class.new - end - subject{ @context } - - INSTANCE_METHODS = [ - :assert_block, :assert_not_block, :refute_block, - :assert_raises, :assert_raise, :assert_nothing_raised, :assert_not_raises, :assert_not_raise, - :assert_kind_of, :assert_not_kind_of, :refute_kind_of, - :assert_instance_of, :assert_not_instance_of, :refute_instance_of, - :assert_respond_to, :assert_not_respond_to, :refute_respond_to, - :assert_same, :assert_not_same, :refute_same, - :assert_equal, :assert_not_equal, :refute_equal, - :assert_match, :assert_not_match, :assert_no_match, :refute_match - ] - INSTANCE_METHODS.each do |method| - should "respond to the instance method ##{method}" do - assert_respond_to subject, method + desc "An assert context" + setup do + @context_class = Factory.context_class + @context = @context_class.new end + subject{ @context } + + should have_instance_methods :assert_block, :assert_not_block, :refute_block + should have_instance_methods :assert_raises, :assert_raise, :assert_nothing_raised, :assert_not_raises, :assert_not_raise + should have_instance_methods :assert_kind_of, :assert_not_kind_of, :refute_kind_of + should have_instance_methods :assert_instance_of, :assert_not_instance_of, :refute_instance_of + should have_instance_methods :assert_respond_to, :assert_not_respond_to, :refute_respond_to + should have_instance_methods :assert_same, :assert_not_same, :refute_same + should have_instance_methods :assert_equal, :assert_not_equal, :refute_equal + should have_instance_methods :assert_match, :assert_not_match, :assert_no_match, :refute_match + should have_instance_methods :assert_empty, :assert_not_empty, :refute_empty + should have_instance_methods :assert_includes, :assert_included + should have_instance_methods :assert_not_includes, :assert_not_included, :refute_includes, :refute_included + should have_instance_methods :assert_nil, :assert_not_nil, :refute_nil end class IgnoredTest < BasicTest desc "ignored assertions helpers" setup do @@ -46,289 +45,13 @@ subject.each do |result| assert_kind_of Assert::Result::Ignore, result end assert_equal(Assert::Assertions::IGNORED_ASSERTION_HELPERS.size, subject.size) end + should "have a custom ignore message for each helper in the constant" do assert_equal(@expected_messages, subject.collect(&:message)) end end end - -=begin -module Assert::Assertions - - class AssertSameTest < BasicTest - - setup do - klass = Class.new - object = klass.new - @test = Assert::Test.new("assert same test", lambda do - assert_same(object, object) # pass - assert_same(object, klass.new) # fail - end, @context_klass) - @test.run - end - subject{ @test } - - should "have 2 total results" do - assert_equal 2, subject.result_count - end - - should "have 1 pass result" do - assert_equal 1, subject.result_count(:pass) - end - - should "have 1 fail result" do - assert_equal 1, subject.result_count(:fail) - end - - class MessagesTest < AssertSameTest - - setup do - klass = Class.new - args = [ klass.new, klass.new, "assert same shoudn't fail!" ] - @test = Assert::Test.new("assert same message test", lambda do - assert_same(*args) - end, @context_klass) - @expected_message = "Expected #{args[0].inspect} (#{args[0].object_id}) to be the same as #{args[1]} (#{args[1].object_id}).\n#{args[2]}" - @test.run - @message = @test.fail_results.first.message - end - subject{ @message } - - should "have the correct failure message" do - assert_equal @expected_message, subject - end - - end - - end - - class AssertNotSameTest < BasicTest - - setup do - klass = Class.new - object = klass.new - @test = Assert::Test.new("assert not same test", lambda do - assert_not_same(object, object) # fail - assert_not_same(object, klass.new) # pass - end, @context_klass) - @test.run - end - subject{ @test } - - should "have 2 total results" do - assert_equal 2, subject.result_count - end - - should "have 1 pass result" do - assert_equal 1, subject.result_count(:pass) - end - - should "have 1 fail result" do - assert_equal 1, subject.result_count(:fail) - end - - class MessagesTest < AssertNotSameTest - - setup do - klass = Class.new - object = klass.new - args = [ object, object, "assert not same shoudn't fail!" ] - @test = Assert::Test.new("assert not same message test", lambda do - assert_not_same(*args) - end, @context_klass) - @expected_message = "#{args[0].inspect} (#{args[0].object_id}) not expected to be the same as #{args[1]} (#{args[1].object_id}).\n#{args[2]}" - @test.run - @message = @test.fail_results.first.message - end - subject{ @message } - - should "have the correct failure message" do - assert_equal @expected_message, subject - end - - end - - end - - class AssertEqualTest < BasicTest - - setup do - @test = Assert::Test.new("assert equal test", lambda do - assert_equal(1, 1) # pass - assert_equal(1, 2) # fail - end, @context_klass) - @test.run - end - subject{ @test } - - should "have 2 total results" do - assert_equal 2, subject.result_count - end - - should "have 1 pass result" do - assert_equal 1, subject.result_count(:pass) - end - - should "have 1 fail result" do - assert_equal 1, subject.result_count(:fail) - end - - class MessagesTest < AssertEqualTest - - setup do - args = [ 1, 2, "assert equal shoudn't fail!" ] - @test = Assert::Test.new("assert equal message test", lambda do - assert_equal(*args) - end, @context_klass) - @expected_message = "Expected #{args[0].inspect}, not #{args[1].inspect}.\n#{args[2]}" - @test.run - @message = @test.fail_results.first.message - end - subject{ @message } - - should "have the correct failure message" do - assert_equal @expected_message, subject - end - - end - - end - - class AssertNotEqualTest < BasicTest - - setup do - @test = Assert::Test.new("assert not equal test", lambda do - assert_not_equal(1, 1) # fail - assert_not_equal(1, 2) # pass - end, @context_klass) - @test.run - end - subject{ @test } - - should "have 2 total results" do - assert_equal 2, subject.result_count - end - - should "have 1 pass result" do - assert_equal 1, subject.result_count(:pass) - end - - should "have 1 fail result" do - assert_equal 1, subject.result_count(:fail) - end - - class MessagesTest < AssertNotEqualTest - - setup do - args = [ 1, 1, "assert not equal shoudn't fail!" ] - @test = Assert::Test.new("assert not equal message test", lambda do - assert_not_equal(*args) - end, @context_klass) - @expected_message = "#{args[0].inspect} not expected to be equal to #{args[1].inspect}.\n#{args[2]}" - @test.run - @message = @test.fail_results.first.message - end - subject{ @message } - - should "have the correct failure message" do - assert_equal @expected_message, subject - end - - end - - end - - class AssertMatchTest < BasicTest - - setup do - @test = Assert::Test.new("assert match test", lambda do - assert_match("a string", /a/) # pass - assert_match("a string", "not") # fail - end, @context_klass) - @test.run - end - subject{ @test } - - should "have 2 total results" do - assert_equal 2, subject.result_count - end - - should "have 1 pass result" do - assert_equal 1, subject.result_count(:pass) - end - - should "have 1 fail result" do - assert_equal 1, subject.result_count(:fail) - end - - class MessagesTest < AssertMatchTest - - setup do - args = [ "a string", "not", "assert match shoudn't fail!" ] - @test = Assert::Test.new("assert match message test", lambda do - assert_match(*args) - end, @context_klass) - @expected_message = "Expected #{args[0].inspect} to match #{args[1].inspect}.\n#{args[2]}" - @test.run - @message = @test.fail_results.first.message - end - subject{ @message } - - should "have the correct failure message" do - assert_equal @expected_message, subject - end - - end - - end - - class AssertNotMatchTest < BasicTest - - setup do - @test = Assert::Test.new("assert not match test", lambda do - assert_not_match("a string", /a/) # fail - assert_not_match("a string", "not") # pass - end, @context_klass) - @test.run - end - subject{ @test } - - should "have 2 total results" do - assert_equal 2, subject.result_count - end - - should "have 1 pass result" do - assert_equal 1, subject.result_count(:pass) - end - - should "have 1 fail result" do - assert_equal 1, subject.result_count(:fail) - end - - class MessagesTest < AssertNotMatchTest - - setup do - args = [ "a string", /a/, "assert not match shoudn't fail!" ] - @test = Assert::Test.new("assert not match message test", lambda do - assert_not_match(*args) - end, @context_klass) - @expected_message = "#{args[0].inspect} not expected to match #{args[1].inspect}.\n#{args[2]}" - @test.run - @message = @test.fail_results.first.message - end - subject{ @message } - - should "have the correct failure message" do - assert_equal @expected_message, subject - end - - end - - end - -end -=end