From 3632f4cf1cfda24d81e1dbe0576fbce52fcb85af Mon Sep 17 00:00:00 2001 From: ryan Date: Tue, 30 Nov 2010 22:45:53 +0000 Subject: Imported minitest 2.0.0 r5952 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29986 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/minitest/test_minitest_mock.rb | 112 ++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 test/minitest/test_minitest_mock.rb (limited to 'test/minitest/test_minitest_mock.rb') diff --git a/test/minitest/test_minitest_mock.rb b/test/minitest/test_minitest_mock.rb new file mode 100644 index 0000000000..bb4279c7d1 --- /dev/null +++ b/test/minitest/test_minitest_mock.rb @@ -0,0 +1,112 @@ +############################################################ +# This file is imported from a different project. +# DO NOT make modifications in this repo. +# File a patch instead and assign it to Ryan Davis +############################################################ + +require 'minitest/mock' +require 'minitest/unit' + +MiniTest::Unit.autorun + +class TestMiniTestMock < MiniTest::Unit::TestCase + def setup + @mock = MiniTest::Mock.new.expect(:foo, nil) + @mock.expect(:meaning_of_life, 42) + end + + def test_create_stub_method + assert_nil @mock.foo + end + + def test_allow_return_value_specification + assert_equal 42, @mock.meaning_of_life + end + + def test_blow_up_if_not_called + @mock.foo + + util_verify_bad + end + + def test_not_blow_up_if_everything_called + @mock.foo + @mock.meaning_of_life + + assert @mock.verify + end + + def test_allow_expectations_to_be_added_after_creation + @mock.expect(:bar, true) + assert @mock.bar + end + + def test_not_verify_if_new_expected_method_is_not_called + @mock.foo + @mock.meaning_of_life + @mock.expect(:bar, true) + + util_verify_bad + end + + def test_not_verify_if_unexpected_method_is_called + assert_raises NoMethodError do + @mock.unexpected + end + end + + def test_blow_up_on_wrong_number_of_arguments + @mock.foo + @mock.meaning_of_life + @mock.expect(:sum, 3, [1, 2]) + + assert_raises ArgumentError do + @mock.sum + end + end + + def test_blow_up_on_wrong_arguments + @mock.foo + @mock.meaning_of_life + @mock.expect(:sum, 3, [1, 2]) + + @mock.sum(2, 4) + + util_verify_bad + end + + def test_respond_appropriately + assert @mock.respond_to?(:foo) + assert !@mock.respond_to?(:bar) + end + + def test_no_method_error_on_unexpected_methods + assert_raises NoMethodError do + @mock.bar + end + end + + def test_assign_per_mock_return_values + a = MiniTest::Mock.new + b = MiniTest::Mock.new + + a.expect(:foo, :a) + b.expect(:foo, :b) + + assert_equal :a, a.foo + assert_equal :b, b.foo + end + + def test_do_not_create_stub_method_on_new_mocks + a = MiniTest::Mock.new + a.expect(:foo, :a) + + assert !MiniTest::Mock.new.respond_to?(:foo) + end + + def util_verify_bad + assert_raises MockExpectationError do + @mock.verify + end + end +end -- cgit v1.2.3