mocha 1.2.1 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.github/FUNDING.yml +1 -0
- data/.rubocop.yml +65 -0
- data/.rubocop_todo.yml +27 -0
- data/.yardopts +1 -0
- data/CONTRIBUTING.md +4 -9
- data/Gemfile +29 -0
- data/README.md +110 -106
- data/RELEASE.md +306 -1
- data/Rakefile +52 -45
- data/gemfiles/Gemfile.minitest.latest +1 -0
- data/gemfiles/Gemfile.test-unit.latest +2 -5
- data/lib/mocha/any_instance_method.rb +9 -62
- data/lib/mocha/api.rb +84 -68
- data/lib/mocha/argument_iterator.rb +4 -8
- data/lib/mocha/backtrace_filter.rb +1 -5
- data/lib/mocha/block_matcher.rb +31 -0
- data/lib/mocha/cardinality.rb +60 -49
- data/lib/mocha/central.rb +21 -12
- data/lib/mocha/change_state_side_effect.rb +0 -4
- data/lib/mocha/class_methods.rb +19 -21
- data/lib/mocha/configuration.rb +312 -47
- data/lib/mocha/debug.rb +3 -2
- data/lib/mocha/deprecation.rb +8 -11
- data/lib/mocha/detection/mini_test.rb +0 -2
- data/lib/mocha/detection/test_unit.rb +3 -5
- data/lib/mocha/error_with_filtered_backtrace.rb +13 -0
- data/lib/mocha/exception_raiser.rb +4 -6
- data/lib/mocha/expectation.rb +186 -95
- data/lib/mocha/expectation_error.rb +1 -1
- data/lib/mocha/expectation_error_factory.rb +0 -1
- data/lib/mocha/expectation_list.rb +7 -11
- data/lib/mocha/hooks.rb +1 -3
- data/lib/mocha/in_state_ordering_constraint.rb +0 -4
- data/lib/mocha/inspect.rb +30 -38
- data/lib/mocha/instance_method.rb +11 -8
- data/lib/mocha/integration/mini_test/adapter.rb +2 -4
- data/lib/mocha/integration/mini_test/exception_translation.rb +1 -1
- data/lib/mocha/integration/mini_test.rb +10 -31
- data/lib/mocha/integration/monkey_patcher.rb +5 -7
- data/lib/mocha/integration/test_unit/adapter.rb +5 -6
- data/lib/mocha/integration/test_unit.rb +10 -26
- data/lib/mocha/invocation.rb +73 -0
- data/lib/mocha/is_a.rb +0 -2
- data/lib/mocha/logger.rb +0 -4
- data/lib/mocha/macos_version.rb +5 -0
- data/lib/mocha/method_matcher.rb +1 -5
- data/lib/mocha/minitest.rb +6 -0
- data/lib/mocha/mock.rb +99 -51
- data/lib/mocha/mockery.rb +70 -99
- data/lib/mocha/names.rb +2 -12
- data/lib/mocha/not_initialized_error.rb +7 -0
- data/lib/mocha/object_methods.rb +25 -31
- data/lib/mocha/parameter_matchers/all_of.rb +2 -8
- data/lib/mocha/parameter_matchers/any_of.rb +2 -8
- data/lib/mocha/parameter_matchers/any_parameters.rb +3 -9
- data/lib/mocha/parameter_matchers/anything.rb +2 -8
- data/lib/mocha/parameter_matchers/base.rb +7 -13
- data/lib/mocha/parameter_matchers/equals.rb +0 -6
- data/lib/mocha/parameter_matchers/{query_string.rb → equivalent_uri.rb} +14 -15
- data/lib/mocha/parameter_matchers/has_entries.rb +2 -7
- data/lib/mocha/parameter_matchers/has_entry.rb +26 -21
- data/lib/mocha/parameter_matchers/has_key.rb +2 -7
- data/lib/mocha/parameter_matchers/has_keys.rb +53 -0
- data/lib/mocha/parameter_matchers/has_value.rb +2 -7
- data/lib/mocha/parameter_matchers/includes.rb +6 -7
- data/lib/mocha/parameter_matchers/instance_methods.rb +27 -0
- data/lib/mocha/parameter_matchers/instance_of.rb +0 -6
- data/lib/mocha/parameter_matchers/is_a.rb +2 -7
- data/lib/mocha/parameter_matchers/kind_of.rb +2 -6
- data/lib/mocha/parameter_matchers/not.rb +2 -7
- data/lib/mocha/parameter_matchers/optionally.rb +4 -10
- data/lib/mocha/parameter_matchers/positional_or_keyword_hash.rb +64 -0
- data/lib/mocha/parameter_matchers/regexp_matches.rb +0 -6
- data/lib/mocha/parameter_matchers/responds_with.rb +3 -8
- data/lib/mocha/parameter_matchers/yaml_equivalent.rb +2 -6
- data/lib/mocha/parameter_matchers.rb +3 -4
- data/lib/mocha/parameters_matcher.rb +8 -11
- data/lib/mocha/raised_exception.rb +11 -0
- data/lib/mocha/receivers.rb +10 -14
- data/lib/mocha/return_values.rb +4 -8
- data/lib/mocha/ruby_version.rb +1 -2
- data/lib/mocha/sequence.rb +4 -9
- data/lib/mocha/single_return_value.rb +2 -5
- data/lib/mocha/state_machine.rb +33 -46
- data/lib/mocha/stubbed_method.rb +88 -0
- data/lib/mocha/stubbing_error.rb +2 -13
- data/lib/mocha/test_unit.rb +5 -2
- data/lib/mocha/thrower.rb +4 -6
- data/lib/mocha/thrown_object.rb +12 -0
- data/lib/mocha/version.rb +1 -1
- data/lib/mocha/yield_parameters.rb +7 -17
- data/mocha.gemspec +14 -65
- data/yard-templates/default/layout/html/google_analytics.erb +6 -9
- data/yard-templates/default/layout/html/setup.rb +2 -3
- metadata +26 -266
- data/bin/build-matrix +0 -70
- data/gemfiles/Gemfile.minitest.1.3.0 +0 -7
- data/gemfiles/Gemfile.minitest.1.4.0 +0 -7
- data/gemfiles/Gemfile.minitest.1.4.1 +0 -7
- data/gemfiles/Gemfile.minitest.1.4.2 +0 -7
- data/gemfiles/Gemfile.minitest.2.0.0 +0 -7
- data/gemfiles/Gemfile.minitest.2.0.1 +0 -7
- data/gemfiles/Gemfile.minitest.2.11.0 +0 -7
- data/gemfiles/Gemfile.minitest.2.11.2 +0 -7
- data/gemfiles/Gemfile.minitest.2.3.0 +0 -7
- data/gemfiles/Gemfile.test-unit.2.0.0 +0 -7
- data/gemfiles/Gemfile.test-unit.2.0.1 +0 -7
- data/gemfiles/Gemfile.test-unit.2.0.3 +0 -7
- data/init.rb +0 -3
- data/lib/mocha/class_method.rb +0 -119
- data/lib/mocha/integration/mini_test/nothing.rb +0 -19
- data/lib/mocha/integration/mini_test/version_13.rb +0 -51
- data/lib/mocha/integration/mini_test/version_140.rb +0 -51
- data/lib/mocha/integration/mini_test/version_141.rb +0 -62
- data/lib/mocha/integration/mini_test/version_142_to_172.rb +0 -62
- data/lib/mocha/integration/mini_test/version_200.rb +0 -63
- data/lib/mocha/integration/mini_test/version_201_to_222.rb +0 -63
- data/lib/mocha/integration/mini_test/version_2110_to_2111.rb +0 -67
- data/lib/mocha/integration/mini_test/version_2112_to_320.rb +0 -70
- data/lib/mocha/integration/mini_test/version_230_to_2101.rb +0 -65
- data/lib/mocha/integration/test_unit/gem_version_200.rb +0 -59
- data/lib/mocha/integration/test_unit/gem_version_201_to_202.rb +0 -59
- data/lib/mocha/integration/test_unit/gem_version_203_to_220.rb +0 -59
- data/lib/mocha/integration/test_unit/gem_version_230_to_250.rb +0 -65
- data/lib/mocha/integration/test_unit/nothing.rb +0 -19
- data/lib/mocha/integration/test_unit/ruby_version_185_and_below.rb +0 -58
- data/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb +0 -60
- data/lib/mocha/integration.rb +0 -14
- data/lib/mocha/mini_test.rb +0 -3
- data/lib/mocha/module_method.rb +0 -16
- data/lib/mocha/module_methods.rb +0 -14
- data/lib/mocha/multiple_yields.rb +0 -20
- data/lib/mocha/no_yields.rb +0 -11
- data/lib/mocha/parameter_matchers/object.rb +0 -17
- data/lib/mocha/pretty_parameters.rb +0 -28
- data/lib/mocha/setup.rb +0 -9
- data/lib/mocha/single_yield.rb +0 -18
- data/lib/mocha/standalone.rb +0 -4
- data/lib/mocha/unexpected_invocation.rb +0 -26
- data/lib/mocha_standalone.rb +0 -4
- data/test/acceptance/acceptance_test_helper.rb +0 -41
- data/test/acceptance/bug_18914_test.rb +0 -43
- data/test/acceptance/bug_21465_test.rb +0 -34
- data/test/acceptance/bug_21563_test.rb +0 -25
- data/test/acceptance/exception_rescue_test.rb +0 -55
- data/test/acceptance/expectations_on_multiple_methods_test.rb +0 -55
- data/test/acceptance/expected_invocation_count_test.rb +0 -232
- data/test/acceptance/failure_messages_test.rb +0 -64
- data/test/acceptance/issue_272_test.rb +0 -52
- data/test/acceptance/issue_65_test.rb +0 -63
- data/test/acceptance/issue_70_test.rb +0 -55
- data/test/acceptance/mocha_example_test.rb +0 -98
- data/test/acceptance/mocha_test_result_test.rb +0 -84
- data/test/acceptance/mock_test.rb +0 -100
- data/test/acceptance/mock_with_initializer_block_test.rb +0 -51
- data/test/acceptance/mocked_methods_dispatch_test.rb +0 -78
- data/test/acceptance/multiple_expectations_failure_message_test.rb +0 -68
- data/test/acceptance/optional_parameters_test.rb +0 -70
- data/test/acceptance/parameter_matcher_test.rb +0 -337
- data/test/acceptance/partial_mocks_test.rb +0 -47
- data/test/acceptance/prepend_test.rb +0 -89
- data/test/acceptance/raise_exception_test.rb +0 -39
- data/test/acceptance/return_value_test.rb +0 -52
- data/test/acceptance/sequence_test.rb +0 -192
- data/test/acceptance/states_test.rb +0 -70
- data/test/acceptance/stub_any_instance_method_defined_on_superclass_test.rb +0 -34
- data/test/acceptance/stub_any_instance_method_test.rb +0 -280
- data/test/acceptance/stub_class_method_defined_on_active_record_association_proxy_test.rb +0 -106
- data/test/acceptance/stub_class_method_defined_on_class_test.rb +0 -78
- data/test/acceptance/stub_class_method_defined_on_module_test.rb +0 -75
- data/test/acceptance/stub_class_method_defined_on_superclass_test.rb +0 -112
- data/test/acceptance/stub_everything_test.rb +0 -56
- data/test/acceptance/stub_instance_method_defined_on_active_record_association_proxy_test.rb +0 -93
- data/test/acceptance/stub_instance_method_defined_on_class_and_aliased_test.rb +0 -69
- data/test/acceptance/stub_instance_method_defined_on_class_test.rb +0 -69
- data/test/acceptance/stub_instance_method_defined_on_kernel_module_test.rb +0 -75
- data/test/acceptance/stub_instance_method_defined_on_module_test.rb +0 -78
- data/test/acceptance/stub_instance_method_defined_on_object_class_test.rb +0 -75
- data/test/acceptance/stub_instance_method_defined_on_singleton_class_test.rb +0 -70
- data/test/acceptance/stub_instance_method_defined_on_superclass_test.rb +0 -72
- data/test/acceptance/stub_method_defined_on_module_and_aliased_test.rb +0 -39
- data/test/acceptance/stub_module_method_test.rb +0 -163
- data/test/acceptance/stub_test.rb +0 -52
- data/test/acceptance/stubba_example_test.rb +0 -102
- data/test/acceptance/stubba_test_result_test.rb +0 -66
- data/test/acceptance/stubbing_error_backtrace_test.rb +0 -64
- data/test/acceptance/stubbing_frozen_object_test.rb +0 -88
- data/test/acceptance/stubbing_method_accepting_block_parameter_test.rb +0 -48
- data/test/acceptance/stubbing_method_unnecessarily_test.rb +0 -65
- data/test/acceptance/stubbing_nil_test.rb +0 -61
- data/test/acceptance/stubbing_non_existent_any_instance_method_test.rb +0 -143
- data/test/acceptance/stubbing_non_existent_class_method_test.rb +0 -157
- data/test/acceptance/stubbing_non_existent_instance_method_test.rb +0 -147
- data/test/acceptance/stubbing_non_public_any_instance_method_test.rb +0 -130
- data/test/acceptance/stubbing_non_public_class_method_test.rb +0 -163
- data/test/acceptance/stubbing_non_public_instance_method_test.rb +0 -143
- data/test/acceptance/stubbing_on_non_mock_object_test.rb +0 -64
- data/test/acceptance/stubbing_same_class_method_on_parent_and_child_classes_test.rb +0 -35
- data/test/acceptance/throw_test.rb +0 -45
- data/test/acceptance/unexpected_invocation_test.rb +0 -25
- data/test/acceptance/unstubbing_test.rb +0 -168
- data/test/assertions.rb +0 -8
- data/test/deprecation_disabler.rb +0 -15
- data/test/execution_point.rb +0 -36
- data/test/integration/mini_test_test.rb +0 -8
- data/test/integration/shared_tests.rb +0 -174
- data/test/integration/test_unit_test.rb +0 -8
- data/test/method_definer.rb +0 -24
- data/test/mini_test_result.rb +0 -90
- data/test/minitest_result.rb +0 -49
- data/test/simple_counter.rb +0 -13
- data/test/test_helper.rb +0 -50
- data/test/test_runner.rb +0 -58
- data/test/test_unit_result.rb +0 -20
- data/test/unit/any_instance_method_test.rb +0 -134
- data/test/unit/array_inspect_test.rb +0 -16
- data/test/unit/backtrace_filter_test.rb +0 -19
- data/test/unit/cardinality_test.rb +0 -56
- data/test/unit/central_test.rb +0 -100
- data/test/unit/change_state_side_effect_test.rb +0 -41
- data/test/unit/class_method_test.rb +0 -225
- data/test/unit/class_methods_test.rb +0 -40
- data/test/unit/configuration_test.rb +0 -38
- data/test/unit/date_time_inspect_test.rb +0 -21
- data/test/unit/exception_raiser_test.rb +0 -42
- data/test/unit/expectation_list_test.rb +0 -82
- data/test/unit/expectation_test.rb +0 -497
- data/test/unit/hash_inspect_test.rb +0 -16
- data/test/unit/hooks_test.rb +0 -29
- data/test/unit/in_state_ordering_constraint_test.rb +0 -43
- data/test/unit/method_matcher_test.rb +0 -28
- data/test/unit/mock_test.rb +0 -342
- data/test/unit/mockery_test.rb +0 -151
- data/test/unit/module_methods_test.rb +0 -19
- data/test/unit/multiple_yields_test.rb +0 -18
- data/test/unit/no_yields_test.rb +0 -18
- data/test/unit/object_inspect_test.rb +0 -39
- data/test/unit/object_methods_test.rb +0 -46
- data/test/unit/parameter_matchers/all_of_test.rb +0 -26
- data/test/unit/parameter_matchers/any_of_test.rb +0 -26
- data/test/unit/parameter_matchers/anything_test.rb +0 -21
- data/test/unit/parameter_matchers/equals_test.rb +0 -25
- data/test/unit/parameter_matchers/has_entries_test.rb +0 -51
- data/test/unit/parameter_matchers/has_entry_test.rb +0 -129
- data/test/unit/parameter_matchers/has_key_test.rb +0 -55
- data/test/unit/parameter_matchers/has_value_test.rb +0 -57
- data/test/unit/parameter_matchers/includes_test.rb +0 -102
- data/test/unit/parameter_matchers/instance_of_test.rb +0 -25
- data/test/unit/parameter_matchers/is_a_test.rb +0 -25
- data/test/unit/parameter_matchers/kind_of_test.rb +0 -25
- data/test/unit/parameter_matchers/not_test.rb +0 -26
- data/test/unit/parameter_matchers/regexp_matches_test.rb +0 -46
- data/test/unit/parameter_matchers/responds_with_test.rb +0 -32
- data/test/unit/parameter_matchers/stub_matcher.rb +0 -27
- data/test/unit/parameter_matchers/yaml_equivalent_test.rb +0 -25
- data/test/unit/parameters_matcher_test.rb +0 -121
- data/test/unit/receivers_test.rb +0 -66
- data/test/unit/return_values_test.rb +0 -63
- data/test/unit/sequence_test.rb +0 -104
- data/test/unit/single_return_value_test.rb +0 -14
- data/test/unit/single_yield_test.rb +0 -18
- data/test/unit/state_machine_test.rb +0 -98
- data/test/unit/string_inspect_test.rb +0 -11
- data/test/unit/thrower_test.rb +0 -20
- data/test/unit/yield_parameters_test.rb +0 -93
@@ -1,98 +0,0 @@
|
|
1
|
-
require File.expand_path('../../test_helper', __FILE__)
|
2
|
-
require 'mocha/setup'
|
3
|
-
|
4
|
-
class MochaExampleTest < Mocha::TestCase
|
5
|
-
|
6
|
-
class Rover
|
7
|
-
|
8
|
-
def initialize(left_track, right_track, steps_per_metre, steps_per_degree)
|
9
|
-
@left_track, @right_track, @steps_per_metre, @steps_per_degree = left_track, right_track, steps_per_metre, steps_per_degree
|
10
|
-
end
|
11
|
-
|
12
|
-
def forward(metres)
|
13
|
-
@left_track.step(metres * @steps_per_metre)
|
14
|
-
@right_track.step(metres * @steps_per_metre)
|
15
|
-
wait
|
16
|
-
end
|
17
|
-
|
18
|
-
def backward(metres)
|
19
|
-
forward(-metres)
|
20
|
-
end
|
21
|
-
|
22
|
-
def left(degrees)
|
23
|
-
@left_track.step(-degrees * @steps_per_degree)
|
24
|
-
@right_track.step(+degrees * @steps_per_degree)
|
25
|
-
wait
|
26
|
-
end
|
27
|
-
|
28
|
-
def right(degrees)
|
29
|
-
left(-degrees)
|
30
|
-
end
|
31
|
-
|
32
|
-
def wait
|
33
|
-
while (@left_track.moving? or @right_track.moving?); end
|
34
|
-
end
|
35
|
-
|
36
|
-
end
|
37
|
-
|
38
|
-
def test_should_step_both_tracks_forward_ten_steps
|
39
|
-
left_track = mock('left_track')
|
40
|
-
right_track = mock('right_track')
|
41
|
-
steps_per_metre = 5
|
42
|
-
rover = Rover.new(left_track, right_track, steps_per_metre, nil)
|
43
|
-
|
44
|
-
left_track.expects(:step).with(10)
|
45
|
-
right_track.expects(:step).with(10)
|
46
|
-
|
47
|
-
left_track.stubs(:moving?).returns(false)
|
48
|
-
right_track.stubs(:moving?).returns(false)
|
49
|
-
|
50
|
-
rover.forward(2)
|
51
|
-
end
|
52
|
-
|
53
|
-
def test_should_step_both_tracks_backward_ten_steps
|
54
|
-
left_track = mock('left_track')
|
55
|
-
right_track = mock('right_track')
|
56
|
-
steps_per_metre = 5
|
57
|
-
rover = Rover.new(left_track, right_track, steps_per_metre, nil)
|
58
|
-
|
59
|
-
left_track.expects(:step).with(-10)
|
60
|
-
right_track.expects(:step).with(-10)
|
61
|
-
|
62
|
-
left_track.stubs(:moving?).returns(false)
|
63
|
-
right_track.stubs(:moving?).returns(false)
|
64
|
-
|
65
|
-
rover.backward(2)
|
66
|
-
end
|
67
|
-
|
68
|
-
def test_should_step_left_track_forwards_five_steps_and_right_track_backwards_five_steps
|
69
|
-
left_track = mock('left_track')
|
70
|
-
right_track = mock('right_track')
|
71
|
-
steps_per_degree = 5.0 / 90.0
|
72
|
-
rover = Rover.new(left_track, right_track, nil, steps_per_degree)
|
73
|
-
|
74
|
-
left_track.expects(:step).with(+5)
|
75
|
-
right_track.expects(:step).with(-5)
|
76
|
-
|
77
|
-
left_track.stubs(:moving?).returns(false)
|
78
|
-
right_track.stubs(:moving?).returns(false)
|
79
|
-
|
80
|
-
rover.right(90)
|
81
|
-
end
|
82
|
-
|
83
|
-
def test_should_step_left_track_backwards_five_steps_and_right_track_forwards_five_steps
|
84
|
-
left_track = mock('left_track')
|
85
|
-
right_track = mock('right_track')
|
86
|
-
steps_per_degree = 5.0 / 90.0
|
87
|
-
rover = Rover.new(left_track, right_track, nil, steps_per_degree)
|
88
|
-
|
89
|
-
left_track.expects(:step).with(-5)
|
90
|
-
right_track.expects(:step).with(+5)
|
91
|
-
|
92
|
-
left_track.stubs(:moving?).returns(false)
|
93
|
-
right_track.stubs(:moving?).returns(false)
|
94
|
-
|
95
|
-
rover.left(90)
|
96
|
-
end
|
97
|
-
|
98
|
-
end
|
@@ -1,84 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
require 'mocha/setup'
|
3
|
-
require 'execution_point'
|
4
|
-
|
5
|
-
class MochaTestResultTest < Mocha::TestCase
|
6
|
-
|
7
|
-
include AcceptanceTest
|
8
|
-
|
9
|
-
def setup
|
10
|
-
setup_acceptance_test
|
11
|
-
end
|
12
|
-
|
13
|
-
def teardown
|
14
|
-
teardown_acceptance_test
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_should_include_expectation_verification_in_assertion_count
|
18
|
-
test_result = run_as_test do
|
19
|
-
object = mock()
|
20
|
-
object.expects(:message)
|
21
|
-
object.message
|
22
|
-
end
|
23
|
-
assert_equal 1, test_result.assertion_count
|
24
|
-
end
|
25
|
-
|
26
|
-
def test_should_include_assertions_in_assertion_count
|
27
|
-
test_result = run_as_test do
|
28
|
-
assert true
|
29
|
-
end
|
30
|
-
assert_equal 1, test_result.assertion_count
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_should_not_include_stubbing_expectation_verification_in_assertion_count
|
34
|
-
test_result = run_as_test do
|
35
|
-
object = mock()
|
36
|
-
object.stubs(:message)
|
37
|
-
object.message
|
38
|
-
end
|
39
|
-
assert_equal 0, test_result.assertion_count
|
40
|
-
end
|
41
|
-
|
42
|
-
def test_should_include_expectation_verification_failure_in_failure_count
|
43
|
-
test_result = run_as_test do
|
44
|
-
object = mock()
|
45
|
-
object.expects(:message)
|
46
|
-
end
|
47
|
-
assert_equal 1, test_result.failure_count
|
48
|
-
end
|
49
|
-
|
50
|
-
def test_should_include_unexpected_verification_failure_in_failure_count
|
51
|
-
test_result = run_as_test do
|
52
|
-
object = mock()
|
53
|
-
object.message
|
54
|
-
end
|
55
|
-
assert_equal 1, test_result.failure_count
|
56
|
-
end
|
57
|
-
|
58
|
-
def test_should_include_assertion_failure_in_failure_count
|
59
|
-
test_result = run_as_test do
|
60
|
-
flunk
|
61
|
-
end
|
62
|
-
assert_equal 1, test_result.failure_count
|
63
|
-
end
|
64
|
-
|
65
|
-
def test_should_display_backtrace_indicating_line_number_where_unexpected_method_was_called
|
66
|
-
execution_point = nil
|
67
|
-
test_result = run_as_test do
|
68
|
-
object = mock()
|
69
|
-
execution_point = ExecutionPoint.current; object.message
|
70
|
-
end
|
71
|
-
assert_equal 1, test_result.failure_count
|
72
|
-
assert_equal execution_point, ExecutionPoint.new(test_result.failures[0].location)
|
73
|
-
end
|
74
|
-
|
75
|
-
def test_should_display_backtrace_indicating_line_number_where_failing_assertion_was_called
|
76
|
-
execution_point = nil
|
77
|
-
test_result = run_as_test do
|
78
|
-
execution_point = ExecutionPoint.current; flunk
|
79
|
-
end
|
80
|
-
assert_equal 1, test_result.failure_count
|
81
|
-
assert_equal execution_point, ExecutionPoint.new(test_result.failures[0].location)
|
82
|
-
end
|
83
|
-
|
84
|
-
end
|
@@ -1,100 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
require 'mocha/setup'
|
3
|
-
|
4
|
-
class MockTest < Mocha::TestCase
|
5
|
-
|
6
|
-
include AcceptanceTest
|
7
|
-
|
8
|
-
def setup
|
9
|
-
setup_acceptance_test
|
10
|
-
end
|
11
|
-
|
12
|
-
def teardown
|
13
|
-
teardown_acceptance_test
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_should_build_mock_and_explicitly_add_an_expectation_which_is_satisfied
|
17
|
-
test_result = run_as_test do
|
18
|
-
foo = mock()
|
19
|
-
foo.expects(:bar)
|
20
|
-
foo.bar
|
21
|
-
end
|
22
|
-
assert_passed(test_result)
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_should_build_mock_and_explicitly_add_an_expectation_which_is_not_satisfied
|
26
|
-
test_result = run_as_test do
|
27
|
-
foo = mock()
|
28
|
-
foo.expects(:bar)
|
29
|
-
end
|
30
|
-
assert_failed(test_result)
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_should_build_named_mock_and_explicitly_add_an_expectation_which_is_satisfied
|
34
|
-
test_result = run_as_test do
|
35
|
-
foo = mock('foo')
|
36
|
-
foo.expects(:bar)
|
37
|
-
foo.bar
|
38
|
-
end
|
39
|
-
assert_passed(test_result)
|
40
|
-
end
|
41
|
-
|
42
|
-
def test_should_build_named_mock_and_explicitly_add_an_expectation_which_is_not_satisfied
|
43
|
-
test_result = run_as_test do
|
44
|
-
foo = mock('foo')
|
45
|
-
foo.expects(:bar)
|
46
|
-
end
|
47
|
-
assert_failed(test_result)
|
48
|
-
end
|
49
|
-
|
50
|
-
def test_should_build_mock_incorporating_two_expectations_which_are_satisifed
|
51
|
-
test_result = run_as_test do
|
52
|
-
foo = mock(:bar => 'bar', :baz => 'baz')
|
53
|
-
foo.bar
|
54
|
-
foo.baz
|
55
|
-
end
|
56
|
-
assert_passed(test_result)
|
57
|
-
end
|
58
|
-
|
59
|
-
def test_should_build_mock_incorporating_two_expectations_the_first_of_which_is_not_satisifed
|
60
|
-
test_result = run_as_test do
|
61
|
-
foo = mock(:bar => 'bar', :baz => 'baz')
|
62
|
-
foo.baz
|
63
|
-
end
|
64
|
-
assert_failed(test_result)
|
65
|
-
end
|
66
|
-
|
67
|
-
def test_should_build_mock_incorporating_two_expectations_the_second_of_which_is_not_satisifed
|
68
|
-
test_result = run_as_test do
|
69
|
-
foo = mock(:bar => 'bar', :baz => 'baz')
|
70
|
-
foo.bar
|
71
|
-
end
|
72
|
-
assert_failed(test_result)
|
73
|
-
end
|
74
|
-
|
75
|
-
def test_should_build_named_mock_incorporating_two_expectations_which_are_satisifed
|
76
|
-
test_result = run_as_test do
|
77
|
-
foo = mock('foo', :bar => 'bar', :baz => 'baz')
|
78
|
-
foo.bar
|
79
|
-
foo.baz
|
80
|
-
end
|
81
|
-
assert_passed(test_result)
|
82
|
-
end
|
83
|
-
|
84
|
-
def test_should_build_named_mock_incorporating_two_expectations_the_first_of_which_is_not_satisifed
|
85
|
-
test_result = run_as_test do
|
86
|
-
foo = mock('foo', :bar => 'bar', :baz => 'baz')
|
87
|
-
foo.baz
|
88
|
-
end
|
89
|
-
assert_failed(test_result)
|
90
|
-
end
|
91
|
-
|
92
|
-
def test_should_build_named_mock_incorporating_two_expectations_the_second_of_which_is_not_satisifed
|
93
|
-
test_result = run_as_test do
|
94
|
-
foo = mock('foo', :bar => 'bar', :baz => 'baz')
|
95
|
-
foo.bar
|
96
|
-
end
|
97
|
-
assert_failed(test_result)
|
98
|
-
end
|
99
|
-
|
100
|
-
end
|
@@ -1,51 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
require 'mocha/setup'
|
3
|
-
|
4
|
-
class MockWithInitializerBlockTest < Mocha::TestCase
|
5
|
-
|
6
|
-
include AcceptanceTest
|
7
|
-
|
8
|
-
def setup
|
9
|
-
setup_acceptance_test
|
10
|
-
end
|
11
|
-
|
12
|
-
def teardown
|
13
|
-
teardown_acceptance_test
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_should_expect_two_method_invocations_and_receive_both_of_them
|
17
|
-
test_result = run_as_test do
|
18
|
-
mock = mock() do
|
19
|
-
expects(:method_1)
|
20
|
-
expects(:method_2)
|
21
|
-
end
|
22
|
-
mock.method_1
|
23
|
-
mock.method_2
|
24
|
-
end
|
25
|
-
assert_passed(test_result)
|
26
|
-
end
|
27
|
-
|
28
|
-
def test_should_expect_two_method_invocations_but_receive_only_one_of_them
|
29
|
-
test_result = run_as_test do
|
30
|
-
mock = mock() do
|
31
|
-
expects(:method_1)
|
32
|
-
expects(:method_2)
|
33
|
-
end
|
34
|
-
mock.method_1
|
35
|
-
end
|
36
|
-
assert_failed(test_result)
|
37
|
-
end
|
38
|
-
|
39
|
-
def test_should_stub_methods
|
40
|
-
test_result = run_as_test do
|
41
|
-
mock = mock() do
|
42
|
-
stubs(:method_1).returns(1)
|
43
|
-
stubs(:method_2).returns(2)
|
44
|
-
end
|
45
|
-
assert_equal 1, mock.method_1
|
46
|
-
assert_equal 2, mock.method_2
|
47
|
-
end
|
48
|
-
assert_passed(test_result)
|
49
|
-
end
|
50
|
-
|
51
|
-
end
|
@@ -1,78 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
require 'mocha/setup'
|
3
|
-
|
4
|
-
class MockedMethodDispatchTest < Mocha::TestCase
|
5
|
-
|
6
|
-
include AcceptanceTest
|
7
|
-
|
8
|
-
def setup
|
9
|
-
setup_acceptance_test
|
10
|
-
end
|
11
|
-
|
12
|
-
def teardown
|
13
|
-
teardown_acceptance_test
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_should_find_latest_matching_expectation
|
17
|
-
test_result = run_as_test do
|
18
|
-
mock = mock()
|
19
|
-
mock.stubs(:method).returns(1)
|
20
|
-
mock.stubs(:method).returns(2)
|
21
|
-
assert_equal 2, mock.method
|
22
|
-
assert_equal 2, mock.method
|
23
|
-
assert_equal 2, mock.method
|
24
|
-
end
|
25
|
-
assert_passed(test_result)
|
26
|
-
end
|
27
|
-
|
28
|
-
def test_should_find_latest_expectation_which_has_not_stopped_matching
|
29
|
-
test_result = run_as_test do
|
30
|
-
mock = mock()
|
31
|
-
mock.stubs(:method).returns(1)
|
32
|
-
mock.stubs(:method).once.returns(2)
|
33
|
-
assert_equal 2, mock.method
|
34
|
-
assert_equal 1, mock.method
|
35
|
-
assert_equal 1, mock.method
|
36
|
-
end
|
37
|
-
assert_passed(test_result)
|
38
|
-
end
|
39
|
-
|
40
|
-
def test_should_keep_finding_later_stub_and_so_never_satisfy_earlier_expectation
|
41
|
-
test_result = run_as_test do
|
42
|
-
mock = mock()
|
43
|
-
mock.expects(:method).returns(1)
|
44
|
-
mock.stubs(:method).returns(2)
|
45
|
-
assert_equal 2, mock.method
|
46
|
-
assert_equal 2, mock.method
|
47
|
-
assert_equal 2, mock.method
|
48
|
-
end
|
49
|
-
assert_failed(test_result)
|
50
|
-
end
|
51
|
-
|
52
|
-
def test_should_find_later_expectation_until_it_stops_matching_then_find_earlier_stub
|
53
|
-
test_result = run_as_test do
|
54
|
-
mock = mock()
|
55
|
-
mock.stubs(:method).returns(1)
|
56
|
-
mock.expects(:method).returns(2)
|
57
|
-
assert_equal 2, mock.method
|
58
|
-
assert_equal 1, mock.method
|
59
|
-
assert_equal 1, mock.method
|
60
|
-
end
|
61
|
-
assert_passed(test_result)
|
62
|
-
end
|
63
|
-
|
64
|
-
def test_should_find_latest_expectation_with_range_of_expected_invocation_count_which_has_not_stopped_matching
|
65
|
-
test_result = run_as_test do
|
66
|
-
mock = mock()
|
67
|
-
mock.stubs(:method).returns(1)
|
68
|
-
mock.stubs(:method).times(2..3).returns(2)
|
69
|
-
assert_equal 2, mock.method
|
70
|
-
assert_equal 2, mock.method
|
71
|
-
assert_equal 2, mock.method
|
72
|
-
assert_equal 1, mock.method
|
73
|
-
assert_equal 1, mock.method
|
74
|
-
end
|
75
|
-
assert_passed(test_result)
|
76
|
-
end
|
77
|
-
|
78
|
-
end
|
@@ -1,68 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
require 'mocha/setup'
|
3
|
-
|
4
|
-
class FailureMessageTest < Mocha::TestCase
|
5
|
-
|
6
|
-
include AcceptanceTest
|
7
|
-
|
8
|
-
def setup
|
9
|
-
setup_acceptance_test
|
10
|
-
end
|
11
|
-
|
12
|
-
def teardown
|
13
|
-
teardown_acceptance_test
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_should_include_unexpected_invocation_in_unsatisfied_expectation_message
|
17
|
-
test_result = run_as_test do
|
18
|
-
mock = mock('mock')
|
19
|
-
mock.expects(:method_one).once
|
20
|
-
2.times { mock.method_one }
|
21
|
-
end
|
22
|
-
assert_failed(test_result)
|
23
|
-
assert_equal [
|
24
|
-
"unexpected invocation: #<Mock:mock>.method_one()",
|
25
|
-
"unsatisfied expectations:",
|
26
|
-
"- expected exactly once, invoked twice: #<Mock:mock>.method_one(any_parameters)"
|
27
|
-
], test_result.failure_message_lines
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_should_report_satisfied_expectations_as_well_as_unsatisfied_expectations
|
31
|
-
test_result = run_as_test do
|
32
|
-
mock = mock('mock')
|
33
|
-
mock.expects(:method_one).once
|
34
|
-
mock.expects(:method_two).twice
|
35
|
-
1.times { mock.method_one }
|
36
|
-
1.times { mock.method_two }
|
37
|
-
end
|
38
|
-
assert_failed(test_result)
|
39
|
-
assert_equal [
|
40
|
-
"not all expectations were satisfied",
|
41
|
-
"unsatisfied expectations:",
|
42
|
-
"- expected exactly twice, invoked once: #<Mock:mock>.method_two(any_parameters)",
|
43
|
-
"satisfied expectations:",
|
44
|
-
"- expected exactly once, invoked once: #<Mock:mock>.method_one(any_parameters)"
|
45
|
-
], test_result.failure_message_lines
|
46
|
-
end
|
47
|
-
|
48
|
-
def test_should_report_multiple_satisfied_expectations
|
49
|
-
test_result = run_as_test do
|
50
|
-
mock = mock('mock')
|
51
|
-
mock.expects(:method_one).once
|
52
|
-
mock.expects(:method_two).twice
|
53
|
-
mock.expects(:method_three).times(3)
|
54
|
-
1.times { mock.method_one }
|
55
|
-
2.times { mock.method_two }
|
56
|
-
2.times { mock.method_three }
|
57
|
-
end
|
58
|
-
assert_failed(test_result)
|
59
|
-
assert_equal [
|
60
|
-
"not all expectations were satisfied",
|
61
|
-
"unsatisfied expectations:",
|
62
|
-
"- expected exactly 3 times, invoked twice: #<Mock:mock>.method_three(any_parameters)",
|
63
|
-
"satisfied expectations:",
|
64
|
-
"- expected exactly twice, invoked twice: #<Mock:mock>.method_two(any_parameters)",
|
65
|
-
"- expected exactly once, invoked once: #<Mock:mock>.method_one(any_parameters)"
|
66
|
-
], test_result.failure_message_lines
|
67
|
-
end
|
68
|
-
end
|
@@ -1,70 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
require 'mocha/setup'
|
3
|
-
|
4
|
-
class OptionalParameterMatcherTest < Mocha::TestCase
|
5
|
-
|
6
|
-
include AcceptanceTest
|
7
|
-
|
8
|
-
def setup
|
9
|
-
setup_acceptance_test
|
10
|
-
end
|
11
|
-
|
12
|
-
def teardown
|
13
|
-
teardown_acceptance_test
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_should_pass_if_all_required_parameters_match_and_no_optional_parameters_are_supplied
|
17
|
-
test_result = run_as_test do
|
18
|
-
mock = mock()
|
19
|
-
mock.expects(:method).with(1, 2, optionally(3, 4))
|
20
|
-
mock.method(1, 2)
|
21
|
-
end
|
22
|
-
assert_passed(test_result)
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_should_pass_if_all_required_and_optional_parameters_match_and_some_optional_parameters_are_supplied
|
26
|
-
test_result = run_as_test do
|
27
|
-
mock = mock()
|
28
|
-
mock.expects(:method).with(1, 2, optionally(3, 4))
|
29
|
-
mock.method(1, 2, 3)
|
30
|
-
end
|
31
|
-
assert_passed(test_result)
|
32
|
-
end
|
33
|
-
|
34
|
-
def test_should_pass_if_all_required_and_optional_parameters_match_and_all_optional_parameters_are_supplied
|
35
|
-
test_result = run_as_test do
|
36
|
-
mock = mock()
|
37
|
-
mock.expects(:method).with(1, 2, optionally(3, 4))
|
38
|
-
mock.method(1, 2, 3, 4)
|
39
|
-
end
|
40
|
-
assert_passed(test_result)
|
41
|
-
end
|
42
|
-
|
43
|
-
def test_should_fail_if_all_required_and_optional_parameters_match_but_too_many_optional_parameters_are_supplied
|
44
|
-
test_result = run_as_test do
|
45
|
-
mock = mock()
|
46
|
-
mock.expects(:method).with(1, 2, optionally(3, 4))
|
47
|
-
mock.method(1, 2, 3, 4, 5)
|
48
|
-
end
|
49
|
-
assert_failed(test_result)
|
50
|
-
end
|
51
|
-
|
52
|
-
def test_should_fail_if_all_required_parameters_match_but_some_optional_parameters_do_not_match
|
53
|
-
test_result = run_as_test do
|
54
|
-
mock = mock()
|
55
|
-
mock.expects(:method).with(1, 2, optionally(3, 4))
|
56
|
-
mock.method(1, 2, 4)
|
57
|
-
end
|
58
|
-
assert_failed(test_result)
|
59
|
-
end
|
60
|
-
|
61
|
-
def test_should_fail_if_all_required_parameters_match_but_no_optional_parameters_match
|
62
|
-
test_result = run_as_test do
|
63
|
-
mock = mock()
|
64
|
-
mock.expects(:method).with(1, 2, optionally(3, 4))
|
65
|
-
mock.method(1, 2, 4, 5)
|
66
|
-
end
|
67
|
-
assert_failed(test_result)
|
68
|
-
end
|
69
|
-
|
70
|
-
end
|