diff options
Diffstat (limited to 'test/minitest/test_mini_mock.rb')
-rw-r--r-- | test/minitest/test_mini_mock.rb | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/test/minitest/test_mini_mock.rb b/test/minitest/test_mini_mock.rb new file mode 100644 index 0000000000..0f16ae930e --- /dev/null +++ b/test/minitest/test_mini_mock.rb @@ -0,0 +1,83 @@ +############################################################ +# 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 TestMiniMock < MiniTest::Unit::TestCase + def setup + @mock = MiniTest::Mock.new.expect(:foo, nil) + @mock.expect(:meaning_of_life, 42) + end + + def test_should_create_stub_method + assert_nil @mock.foo + end + + def test_should_allow_return_value_specification + assert_equal 42, @mock.meaning_of_life + end + + def test_should_blow_up_if_not_called + @mock.foo + + util_verify_bad + end + + def test_should_not_blow_up_if_everything_called + @mock.foo + @mock.meaning_of_life + + assert @mock.verify + end + + def test_should_allow_expectations_to_be_added_after_creation + @mock.expect(:bar, true) + assert @mock.bar + end + + def test_should_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_should_not_verify_if_unexpected_method_is_called + assert_raises NoMethodError do + @mock.unexpected + end + end + + def test_should_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_should_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 util_verify_bad + assert_raises MockExpectationError do + @mock.verify + end + end +end |