diff options
author | ryan <ryan@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-12-01 05:33:32 +0000 |
---|---|---|
committer | ryan <ryan@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-12-01 05:33:32 +0000 |
commit | d264d3cc38696d8b66d7261ae75a96fb8bdf2729 (patch) | |
tree | c4db29fe9f04a410c985174f39bcb494adf9204d /test/minitest/test_minitest_mock.rb | |
parent | ed22b0ecee668cbd58d469c05b10e74cd6f604ab (diff) | |
download | ruby-d264d3cc38696d8b66d7261ae75a96fb8bdf2729.tar.gz |
Imported minitest 2.0.0 r5952. Fixed test/unit.rb to work with changes
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29990 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/minitest/test_minitest_mock.rb')
-rw-r--r-- | test/minitest/test_minitest_mock.rb | 112 |
1 files changed, 112 insertions, 0 deletions
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 |