mocha 1.4.0 → 1.7.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/.rubocop.yml +58 -0
- data/.rubocop_todo.yml +50 -0
- data/README.md +12 -71
- data/RELEASE.md +19 -0
- data/Rakefile +35 -28
- data/bin/build-matrix +17 -18
- data/lib/mocha/any_instance_method.rb +19 -25
- data/lib/mocha/api.rb +1 -5
- data/lib/mocha/argument_iterator.rb +4 -8
- data/lib/mocha/backtrace_filter.rb +1 -5
- data/lib/mocha/cardinality.rb +20 -27
- data/lib/mocha/central.rb +21 -12
- data/lib/mocha/change_state_side_effect.rb +0 -4
- data/lib/mocha/class_method.rb +31 -37
- data/lib/mocha/class_methods.rb +11 -15
- data/lib/mocha/configuration.rb +69 -10
- data/lib/mocha/debug.rb +3 -2
- data/lib/mocha/deprecation.rb +4 -11
- data/lib/mocha/detection/mini_test.rb +0 -2
- data/lib/mocha/detection/test_unit.rb +4 -4
- data/lib/mocha/error_with_filtered_backtrace.rb +13 -0
- data/lib/mocha/exception_raiser.rb +2 -5
- data/lib/mocha/expectation.rb +15 -18
- data/lib/mocha/expectation_error.rb +2 -0
- data/lib/mocha/expectation_error_factory.rb +0 -1
- data/lib/mocha/expectation_list.rb +2 -6
- data/lib/mocha/hooks.rb +1 -3
- data/lib/mocha/in_state_ordering_constraint.rb +0 -4
- data/lib/mocha/inspect.rb +3 -5
- data/lib/mocha/instance_method.rb +0 -2
- 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/nothing.rb +4 -4
- data/lib/mocha/integration/mini_test/version_13.rb +4 -1
- data/lib/mocha/integration/mini_test/version_140.rb +4 -1
- data/lib/mocha/integration/mini_test/version_141.rb +4 -1
- data/lib/mocha/integration/mini_test/version_142_to_172.rb +4 -1
- data/lib/mocha/integration/mini_test/version_200.rb +4 -1
- data/lib/mocha/integration/mini_test/version_201_to_222.rb +4 -1
- data/lib/mocha/integration/mini_test/version_2110_to_2111.rb +4 -1
- data/lib/mocha/integration/mini_test/version_2112_to_320.rb +4 -1
- data/lib/mocha/integration/mini_test/version_230_to_2101.rb +4 -1
- 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/gem_version_200.rb +5 -2
- data/lib/mocha/integration/test_unit/gem_version_201_to_202.rb +5 -2
- data/lib/mocha/integration/test_unit/gem_version_203_to_220.rb +5 -2
- data/lib/mocha/integration/test_unit/gem_version_230_to_250.rb +5 -2
- data/lib/mocha/integration/test_unit/nothing.rb +4 -4
- data/lib/mocha/integration/test_unit/ruby_version_185_and_below.rb +4 -1
- data/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb +4 -1
- data/lib/mocha/integration.rb +3 -4
- data/lib/mocha/is_a.rb +0 -2
- data/lib/mocha/logger.rb +0 -4
- data/lib/mocha/method_matcher.rb +1 -5
- data/lib/mocha/minitest.rb +1 -1
- data/lib/mocha/mock.rb +25 -30
- data/lib/mocha/mockery.rb +62 -43
- data/lib/mocha/module_method.rb +0 -10
- data/lib/mocha/module_methods.rb +0 -4
- data/lib/mocha/multiple_yields.rb +0 -5
- data/lib/mocha/names.rb +1 -11
- data/lib/mocha/no_yields.rb +1 -7
- data/lib/mocha/not_initialized_error.rb +7 -0
- data/lib/mocha/object_methods.rb +16 -16
- data/lib/mocha/parameter_matchers/all_of.rb +1 -7
- data/lib/mocha/parameter_matchers/any_of.rb +1 -7
- 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 +6 -12
- data/lib/mocha/parameter_matchers/equals.rb +0 -6
- data/lib/mocha/parameter_matchers/equivalent_uri.rb +6 -6
- data/lib/mocha/parameter_matchers/has_entries.rb +2 -6
- data/lib/mocha/parameter_matchers/has_entry.rb +8 -11
- data/lib/mocha/parameter_matchers/has_key.rb +2 -6
- data/lib/mocha/parameter_matchers/has_value.rb +2 -6
- data/lib/mocha/parameter_matchers/includes.rb +2 -6
- data/lib/mocha/parameter_matchers/instance_of.rb +0 -6
- data/lib/mocha/parameter_matchers/is_a.rb +2 -6
- data/lib/mocha/parameter_matchers/kind_of.rb +2 -6
- data/lib/mocha/parameter_matchers/not.rb +2 -6
- data/lib/mocha/parameter_matchers/object.rb +0 -2
- data/lib/mocha/parameter_matchers/optionally.rb +4 -10
- 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 +0 -2
- data/lib/mocha/parameters_matcher.rb +6 -9
- data/lib/mocha/pretty_parameters.rb +0 -4
- data/lib/mocha/receivers.rb +10 -14
- data/lib/mocha/return_values.rb +3 -7
- data/lib/mocha/sequence.rb +4 -9
- data/lib/mocha/single_return_value.rb +0 -4
- data/lib/mocha/single_yield.rb +0 -5
- data/lib/mocha/state_machine.rb +6 -10
- data/lib/mocha/stubbing_error.rb +2 -13
- data/lib/mocha/test_unit.rb +1 -1
- data/lib/mocha/thrower.rb +2 -5
- data/lib/mocha/unexpected_invocation.rb +3 -5
- data/lib/mocha/version.rb +1 -1
- data/lib/mocha/yield_parameters.rb +3 -7
- data/mocha.gemspec +34 -58
- data/test/acceptance/acceptance_test_helper.rb +0 -6
- data/test/acceptance/bug_18914_test.rb +7 -12
- data/test/acceptance/bug_21465_test.rb +0 -2
- data/test/acceptance/bug_21563_test.rb +0 -2
- data/test/acceptance/exception_rescue_test.rb +7 -8
- data/test/acceptance/expectations_on_multiple_methods_test.rb +2 -1
- data/test/acceptance/expected_invocation_count_test.rb +27 -29
- data/test/acceptance/failure_messages_test.rb +3 -5
- data/test/acceptance/issue_272_test.rb +0 -1
- data/test/acceptance/issue_65_test.rb +15 -13
- data/test/acceptance/issue_70_test.rb +0 -1
- data/test/acceptance/mocha_example_test.rb +5 -6
- data/test/acceptance/mocha_test_result_test.rb +7 -7
- data/test/acceptance/mock_test.rb +2 -4
- data/test/acceptance/mock_with_initializer_block_test.rb +0 -2
- data/test/acceptance/mocked_methods_dispatch_test.rb +0 -2
- data/test/acceptance/multiple_expectations_failure_message_test.rb +16 -17
- data/test/acceptance/optional_parameters_test.rb +0 -2
- data/test/acceptance/parameter_matcher_test.rb +2 -3
- data/test/acceptance/partial_mocks_test.rb +4 -6
- data/test/acceptance/prepend_test.rb +14 -16
- data/test/acceptance/prevent_use_of_mocha_outside_test_test.rb +77 -0
- data/test/acceptance/raise_exception_test.rb +2 -4
- data/test/acceptance/return_value_test.rb +0 -2
- data/test/acceptance/sequence_test.rb +9 -11
- data/test/acceptance/states_test.rb +6 -4
- data/test/acceptance/stub_any_instance_method_defined_on_superclass_test.rb +33 -2
- data/test/acceptance/stub_any_instance_method_test.rb +19 -17
- data/test/acceptance/stub_class_method_defined_on_active_record_association_proxy_test.rb +8 -8
- data/test/acceptance/stub_class_method_defined_on_class_test.rb +2 -1
- data/test/acceptance/stub_class_method_defined_on_module_test.rb +0 -1
- data/test/acceptance/stub_class_method_defined_on_superclass_test.rb +34 -1
- data/test/acceptance/stub_everything_test.rb +1 -3
- data/test/acceptance/stub_instance_method_defined_on_active_record_association_proxy_test.rb +6 -7
- data/test/acceptance/stub_instance_method_defined_on_class_and_aliased_test.rb +0 -1
- data/test/acceptance/stub_instance_method_defined_on_class_test.rb +0 -1
- data/test/acceptance/stub_instance_method_defined_on_kernel_module_test.rb +63 -1
- data/test/acceptance/stub_instance_method_defined_on_module_test.rb +0 -1
- data/test/acceptance/stub_instance_method_defined_on_object_class_test.rb +2 -1
- data/test/acceptance/stub_instance_method_defined_on_singleton_class_test.rb +0 -2
- data/test/acceptance/stub_instance_method_defined_on_superclass_test.rb +0 -1
- data/test/acceptance/stub_module_method_test.rb +13 -13
- data/test/acceptance/stub_test.rb +1 -3
- data/test/acceptance/stubba_example_test.rb +6 -14
- data/test/acceptance/stubba_test_result_test.rb +5 -8
- data/test/acceptance/stubbing_error_backtrace_test.rb +2 -2
- data/test/acceptance/stubbing_frozen_object_test.rb +2 -1
- data/test/acceptance/stubbing_method_accepting_block_parameter_test.rb +12 -7
- data/test/acceptance/stubbing_method_unnecessarily_test.rb +0 -2
- data/test/acceptance/stubbing_nil_test.rb +4 -5
- data/test/acceptance/stubbing_non_existent_any_instance_method_test.rb +1 -3
- data/test/acceptance/stubbing_non_existent_class_method_test.rb +3 -3
- data/test/acceptance/stubbing_non_existent_instance_method_test.rb +1 -3
- data/test/acceptance/stubbing_non_public_any_instance_method_test.rb +0 -2
- data/test/acceptance/stubbing_non_public_class_method_test.rb +3 -3
- data/test/acceptance/stubbing_non_public_instance_method_test.rb +1 -3
- data/test/acceptance/stubbing_on_non_mock_object_test.rb +4 -10
- data/test/acceptance/stubbing_same_class_method_on_parent_and_child_classes_test.rb +3 -4
- data/test/acceptance/throw_test.rb +0 -2
- data/test/acceptance/unexpected_invocation_test.rb +2 -3
- data/test/acceptance/unstubbing_test.rb +41 -14
- data/test/deprecation_disabler.rb +0 -1
- data/test/execution_point.rb +2 -4
- data/test/integration/mini_test_test.rb +2 -2
- data/test/integration/shared_tests.rb +24 -22
- data/test/integration/test_unit_test.rb +2 -2
- data/test/method_definer.rb +1 -3
- data/test/mini_test_result.rb +17 -11
- data/test/minitest_result.rb +0 -1
- data/test/simple_counter.rb +0 -2
- data/test/test_helper.rb +13 -5
- data/test/test_runner.rb +2 -4
- data/test/test_unit_result.rb +4 -2
- data/test/unit/any_instance_method_test.rb +31 -17
- data/test/unit/array_inspect_test.rb +2 -4
- data/test/unit/backtrace_filter_test.rb +3 -5
- data/test/unit/cardinality_test.rb +0 -2
- data/test/unit/central_test.rb +26 -27
- data/test/unit/change_state_side_effect_test.rb +0 -4
- data/test/unit/class_method_test.rb +59 -34
- data/test/unit/class_methods_test.rb +34 -5
- data/test/unit/configuration_test.rb +1 -2
- data/test/unit/date_time_inspect_test.rb +1 -3
- data/test/unit/exception_raiser_test.rb +0 -2
- data/test/unit/expectation_list_test.rb +0 -2
- data/test/unit/expectation_test.rb +41 -46
- data/test/unit/hash_inspect_test.rb +3 -5
- data/test/unit/hooks_test.rb +14 -8
- data/test/unit/in_state_ordering_constraint_test.rb +0 -4
- data/test/unit/method_matcher_test.rb +1 -3
- data/test/unit/mock_test.rb +35 -22
- data/test/unit/mockery_test.rb +45 -28
- data/test/unit/module_methods_test.rb +0 -2
- data/test/unit/multiple_yields_test.rb +0 -2
- data/test/unit/no_yields_test.rb +0 -2
- data/test/unit/object_inspect_test.rb +16 -7
- data/test/unit/object_methods_test.rb +22 -6
- data/test/unit/parameter_matchers/all_of_test.rb +0 -2
- data/test/unit/parameter_matchers/any_of_test.rb +0 -2
- data/test/unit/parameter_matchers/anything_test.rb +2 -4
- data/test/unit/parameter_matchers/equals_test.rb +1 -3
- data/test/unit/parameter_matchers/equivalent_uri_test.rb +0 -1
- data/test/unit/parameter_matchers/has_entries_test.rb +2 -2
- data/test/unit/parameter_matchers/has_entry_test.rb +13 -14
- data/test/unit/parameter_matchers/has_key_test.rb +0 -1
- data/test/unit/parameter_matchers/has_value_test.rb +0 -2
- data/test/unit/parameter_matchers/includes_test.rb +8 -9
- data/test/unit/parameter_matchers/instance_of_test.rb +1 -3
- data/test/unit/parameter_matchers/is_a_test.rb +1 -3
- data/test/unit/parameter_matchers/kind_of_test.rb +1 -3
- data/test/unit/parameter_matchers/not_test.rb +0 -2
- data/test/unit/parameter_matchers/regexp_matches_test.rb +1 -2
- data/test/unit/parameter_matchers/responds_with_test.rb +9 -3
- data/test/unit/parameter_matchers/stub_matcher.rb +0 -4
- data/test/unit/parameter_matchers/yaml_equivalent_test.rb +1 -3
- data/test/unit/parameters_matcher_test.rb +2 -4
- data/test/unit/receivers_test.rb +35 -5
- data/test/unit/return_values_test.rb +3 -5
- data/test/unit/sequence_test.rb +1 -5
- data/test/unit/single_return_value_test.rb +0 -2
- data/test/unit/single_yield_test.rb +0 -2
- data/test/unit/state_machine_test.rb +1 -3
- data/test/unit/string_inspect_test.rb +2 -4
- data/test/unit/thrower_test.rb +0 -2
- data/test/unit/yield_parameters_test.rb +0 -2
- data/yard-templates/default/layout/html/setup.rb +2 -3
- metadata +25 -6
@@ -4,9 +4,7 @@ require 'mocha/configuration'
|
|
4
4
|
require 'introspection'
|
5
5
|
|
6
6
|
module AcceptanceTest
|
7
|
-
|
8
7
|
class FakeLogger
|
9
|
-
|
10
8
|
attr_reader :warnings
|
11
9
|
|
12
10
|
def initialize
|
@@ -16,7 +14,6 @@ module AcceptanceTest
|
|
16
14
|
def warn(message)
|
17
15
|
@warnings << message
|
18
16
|
end
|
19
|
-
|
20
17
|
end
|
21
18
|
|
22
19
|
attr_reader :logger
|
@@ -27,15 +24,12 @@ module AcceptanceTest
|
|
27
24
|
Mocha::Configuration.reset_configuration
|
28
25
|
@logger = FakeLogger.new
|
29
26
|
mockery = Mocha::Mockery.instance
|
30
|
-
@original_logger = mockery.logger
|
31
27
|
mockery.logger = @logger
|
32
28
|
end
|
33
29
|
|
34
30
|
def teardown_acceptance_test
|
35
31
|
Mocha::Configuration.reset_configuration
|
36
|
-
Mocha::Mockery.instance.logger = @original_logger
|
37
32
|
end
|
38
33
|
|
39
34
|
include Introspection::Assertions
|
40
|
-
|
41
35
|
end
|
@@ -2,7 +2,6 @@ require File.expand_path('../acceptance_test_helper', __FILE__)
|
|
2
2
|
require 'mocha/setup'
|
3
3
|
|
4
4
|
class Bug18914Test < Mocha::TestCase
|
5
|
-
|
6
5
|
include AcceptanceTest
|
7
6
|
|
8
7
|
def setup
|
@@ -14,30 +13,26 @@ class Bug18914Test < Mocha::TestCase
|
|
14
13
|
end
|
15
14
|
|
16
15
|
class AlwaysEql
|
17
|
-
|
18
16
|
def my_method
|
19
17
|
true
|
20
18
|
end
|
21
19
|
|
22
|
-
def ==(
|
20
|
+
def ==(_other)
|
23
21
|
true
|
24
22
|
end
|
25
23
|
|
26
|
-
def eql?(
|
24
|
+
def eql?(_other)
|
27
25
|
true
|
28
26
|
end
|
29
|
-
|
30
27
|
end
|
31
28
|
|
32
29
|
def test_should_not_allow_stubbing_of_non_mock_instance_disrupted_by_legitimate_overriding_of_eql_method
|
30
|
+
always_eql1 = AlwaysEql.new
|
31
|
+
always_eql1.stubs(:my_method).returns(false)
|
33
32
|
|
34
|
-
|
35
|
-
|
33
|
+
always_eql2 = AlwaysEql.new
|
34
|
+
always_eql2.stubs(:my_method).returns(false)
|
36
35
|
|
37
|
-
|
38
|
-
always_eql_2.stubs(:my_method).returns(false)
|
39
|
-
|
40
|
-
assert_equal false, always_eql_2.my_method
|
36
|
+
assert_equal false, always_eql2.my_method
|
41
37
|
end
|
42
|
-
|
43
38
|
end
|
@@ -2,7 +2,6 @@ require File.expand_path('../acceptance_test_helper', __FILE__)
|
|
2
2
|
require 'mocha/setup'
|
3
3
|
|
4
4
|
class Bug21465Test < Mocha::TestCase
|
5
|
-
|
6
5
|
include AcceptanceTest
|
7
6
|
|
8
7
|
def setup
|
@@ -30,5 +29,4 @@ class Bug21465Test < Mocha::TestCase
|
|
30
29
|
end
|
31
30
|
assert_passed(test_result)
|
32
31
|
end
|
33
|
-
|
34
32
|
end
|
@@ -2,7 +2,6 @@ require File.expand_path('../acceptance_test_helper', __FILE__)
|
|
2
2
|
require 'mocha/setup'
|
3
3
|
|
4
4
|
class Bug21563Test < Mocha::TestCase
|
5
|
-
|
6
5
|
include AcceptanceTest
|
7
6
|
|
8
7
|
def setup
|
@@ -21,5 +20,4 @@ class Bug21563Test < Mocha::TestCase
|
|
21
20
|
end
|
22
21
|
assert_passed(test_result)
|
23
22
|
end
|
24
|
-
|
25
23
|
end
|
@@ -2,7 +2,6 @@ require File.expand_path('../acceptance_test_helper', __FILE__)
|
|
2
2
|
require 'mocha/setup'
|
3
3
|
|
4
4
|
class ExceptionRescueTest < Mocha::TestCase
|
5
|
-
|
6
5
|
include AcceptanceTest
|
7
6
|
|
8
7
|
def setup
|
@@ -18,12 +17,12 @@ class ExceptionRescueTest < Mocha::TestCase
|
|
18
17
|
mock = mock('mock')
|
19
18
|
begin
|
20
19
|
mock.some_method
|
21
|
-
rescue => e
|
20
|
+
rescue StandardError => e
|
22
21
|
flunk "should not rescue #{e.class}"
|
23
22
|
end
|
24
23
|
end
|
25
24
|
assert_failed(test_result)
|
26
|
-
assert_equal
|
25
|
+
assert_equal 'unexpected invocation: #<Mock:mock>.some_method()', test_result.failure_message_lines[0]
|
27
26
|
end
|
28
27
|
|
29
28
|
def test_invocation_never_expected_exception_is_not_caught_by_standard_rescue
|
@@ -32,12 +31,12 @@ class ExceptionRescueTest < Mocha::TestCase
|
|
32
31
|
mock.expects(:some_method).never
|
33
32
|
begin
|
34
33
|
mock.some_method
|
35
|
-
rescue => e
|
34
|
+
rescue StandardError => e
|
36
35
|
flunk "should not rescue #{e.class}"
|
37
36
|
end
|
38
37
|
end
|
39
38
|
assert_failed(test_result)
|
40
|
-
assert_equal
|
39
|
+
assert_equal 'unexpected invocation: #<Mock:mock>.some_method()', test_result.failure_message_lines[0]
|
41
40
|
end
|
42
41
|
|
43
42
|
def test_unsatisfied_expectation_exception_is_not_caught_by_standard_rescue
|
@@ -47,9 +46,9 @@ class ExceptionRescueTest < Mocha::TestCase
|
|
47
46
|
end
|
48
47
|
assert_failed(test_result)
|
49
48
|
assert_equal [
|
50
|
-
|
51
|
-
|
52
|
-
|
49
|
+
'not all expectations were satisfied',
|
50
|
+
'unsatisfied expectations:',
|
51
|
+
'- expected exactly once, not yet invoked: #<Mock:mock>.some_method(any_parameters)'
|
53
52
|
], test_result.failure_message_lines
|
54
53
|
end
|
55
54
|
end
|
@@ -2,7 +2,6 @@ require File.expand_path('../acceptance_test_helper', __FILE__)
|
|
2
2
|
require 'mocha/setup'
|
3
3
|
|
4
4
|
class ExpectationsOnMultipleMethodsTest < Mocha::TestCase
|
5
|
-
|
6
5
|
include AcceptanceTest
|
7
6
|
|
8
7
|
def setup
|
@@ -18,6 +17,7 @@ class ExpectationsOnMultipleMethodsTest < Mocha::TestCase
|
|
18
17
|
def my_instance_method_1
|
19
18
|
:original_return_value_1
|
20
19
|
end
|
20
|
+
|
21
21
|
def my_instance_method_2
|
22
22
|
:original_return_value_2
|
23
23
|
end
|
@@ -38,6 +38,7 @@ class ExpectationsOnMultipleMethodsTest < Mocha::TestCase
|
|
38
38
|
def my_instance_method_1
|
39
39
|
:original_return_value_1
|
40
40
|
end
|
41
|
+
|
41
42
|
def my_instance_method_2
|
42
43
|
:original_return_value_2
|
43
44
|
end
|
@@ -2,7 +2,6 @@ require File.expand_path('../acceptance_test_helper', __FILE__)
|
|
2
2
|
require 'mocha/setup'
|
3
3
|
|
4
4
|
class ExpectedInvocationCountTest < Mocha::TestCase
|
5
|
-
|
6
5
|
include AcceptanceTest
|
7
6
|
|
8
7
|
def setup
|
@@ -30,9 +29,9 @@ class ExpectedInvocationCountTest < Mocha::TestCase
|
|
30
29
|
end
|
31
30
|
assert_failed(test_result)
|
32
31
|
assert_equal [
|
33
|
-
|
34
|
-
|
35
|
-
|
32
|
+
'unexpected invocation: #<Mock:mock>.method()',
|
33
|
+
'unsatisfied expectations:',
|
34
|
+
'- expected never, invoked once: #<Mock:mock>.method(any_parameters)'
|
36
35
|
], test_result.failure_message_lines
|
37
36
|
end
|
38
37
|
|
@@ -53,9 +52,9 @@ class ExpectedInvocationCountTest < Mocha::TestCase
|
|
53
52
|
end
|
54
53
|
assert_failed(test_result)
|
55
54
|
assert_equal [
|
56
|
-
|
57
|
-
|
58
|
-
|
55
|
+
'not all expectations were satisfied',
|
56
|
+
'unsatisfied expectations:',
|
57
|
+
'- expected exactly twice, invoked once: #<Mock:mock>.method(any_parameters)'
|
59
58
|
], test_result.failure_message_lines
|
60
59
|
end
|
61
60
|
|
@@ -67,9 +66,9 @@ class ExpectedInvocationCountTest < Mocha::TestCase
|
|
67
66
|
end
|
68
67
|
assert_failed(test_result)
|
69
68
|
assert_equal [
|
70
|
-
|
71
|
-
|
72
|
-
|
69
|
+
'unexpected invocation: #<Mock:mock>.method()',
|
70
|
+
'unsatisfied expectations:',
|
71
|
+
'- expected exactly twice, invoked 3 times: #<Mock:mock>.method(any_parameters)'
|
73
72
|
], test_result.failure_message_lines
|
74
73
|
end
|
75
74
|
|
@@ -108,9 +107,9 @@ class ExpectedInvocationCountTest < Mocha::TestCase
|
|
108
107
|
end
|
109
108
|
assert_failed(test_result)
|
110
109
|
assert_equal [
|
111
|
-
|
112
|
-
|
113
|
-
|
110
|
+
'not all expectations were satisfied',
|
111
|
+
'unsatisfied expectations:',
|
112
|
+
'- expected between 2 and 4 times, invoked once: #<Mock:mock>.method(any_parameters)'
|
114
113
|
], test_result.failure_message_lines
|
115
114
|
end
|
116
115
|
|
@@ -122,9 +121,9 @@ class ExpectedInvocationCountTest < Mocha::TestCase
|
|
122
121
|
end
|
123
122
|
assert_failed(test_result)
|
124
123
|
assert_equal [
|
125
|
-
|
126
|
-
|
127
|
-
|
124
|
+
'unexpected invocation: #<Mock:mock>.method()',
|
125
|
+
'unsatisfied expectations:',
|
126
|
+
'- expected between 2 and 4 times, invoked 5 times: #<Mock:mock>.method(any_parameters)'
|
128
127
|
], test_result.failure_message_lines
|
129
128
|
end
|
130
129
|
|
@@ -154,9 +153,9 @@ class ExpectedInvocationCountTest < Mocha::TestCase
|
|
154
153
|
end
|
155
154
|
assert_failed(test_result)
|
156
155
|
assert_equal [
|
157
|
-
|
158
|
-
|
159
|
-
|
156
|
+
'not all expectations were satisfied',
|
157
|
+
'unsatisfied expectations:',
|
158
|
+
'- expected at least once, not yet invoked: #<Mock:mock>.method(any_parameters)'
|
160
159
|
], test_result.failure_message_lines
|
161
160
|
end
|
162
161
|
|
@@ -186,9 +185,9 @@ class ExpectedInvocationCountTest < Mocha::TestCase
|
|
186
185
|
end
|
187
186
|
assert_failed(test_result)
|
188
187
|
assert_equal [
|
189
|
-
|
190
|
-
|
191
|
-
|
188
|
+
'unexpected invocation: #<Mock:mock>.method()',
|
189
|
+
'unsatisfied expectations:',
|
190
|
+
'- expected at most once, invoked twice: #<Mock:mock>.method(any_parameters)'
|
192
191
|
], test_result.failure_message_lines
|
193
192
|
end
|
194
193
|
|
@@ -209,9 +208,9 @@ class ExpectedInvocationCountTest < Mocha::TestCase
|
|
209
208
|
end
|
210
209
|
assert_failed(test_result)
|
211
210
|
assert_equal [
|
212
|
-
|
213
|
-
|
214
|
-
|
211
|
+
'unexpected invocation: #<Mock:stub>.method()',
|
212
|
+
'unsatisfied expectations:',
|
213
|
+
'- expected never, invoked once: #<Mock:stub>.method(any_parameters)'
|
215
214
|
], test_result.failure_message_lines
|
216
215
|
end
|
217
216
|
|
@@ -223,10 +222,9 @@ class ExpectedInvocationCountTest < Mocha::TestCase
|
|
223
222
|
end
|
224
223
|
assert_failed(test_result)
|
225
224
|
assert_equal [
|
226
|
-
|
227
|
-
|
228
|
-
|
225
|
+
'unexpected invocation: #<Mock:mock>.method()',
|
226
|
+
'unsatisfied expectations:',
|
227
|
+
'- expected exactly once, not yet invoked: #<Mock:mock>.method(1)'
|
229
228
|
], test_result.failure_message_lines
|
230
229
|
end
|
231
|
-
|
232
230
|
end
|
@@ -2,8 +2,7 @@ require File.expand_path('../acceptance_test_helper', __FILE__)
|
|
2
2
|
require 'mocha/setup'
|
3
3
|
|
4
4
|
class FailureMessagesTest < Mocha::TestCase
|
5
|
-
|
6
|
-
OBJECT_ADDRESS_PATTERN = '0x[0-9A-Fa-f]{1,12}'
|
5
|
+
OBJECT_ADDRESS_PATTERN = '0x[0-9A-Fa-f]{1,12}'.freeze
|
7
6
|
|
8
7
|
include AcceptanceTest
|
9
8
|
|
@@ -48,7 +47,7 @@ class FailureMessagesTest < Mocha::TestCase
|
|
48
47
|
|
49
48
|
def test_should_display_mock_address_when_expectation_was_on_unnamed_mock
|
50
49
|
test_result = run_as_test do
|
51
|
-
foo = mock
|
50
|
+
foo = mock
|
52
51
|
foo.expects(:bar)
|
53
52
|
end
|
54
53
|
assert_match Regexp.new("#<Mock:#{OBJECT_ADDRESS_PATTERN}>"), test_result.failures[0].message
|
@@ -58,7 +57,6 @@ class FailureMessagesTest < Mocha::TestCase
|
|
58
57
|
test_result = run_as_test do
|
59
58
|
'Foo'.expects(:bar)
|
60
59
|
end
|
61
|
-
assert_match Regexp.new(%
|
60
|
+
assert_match Regexp.new(%("Foo")), test_result.failures[0].message
|
62
61
|
end
|
63
|
-
|
64
62
|
end
|
@@ -2,7 +2,6 @@ require File.expand_path('../acceptance_test_helper', __FILE__)
|
|
2
2
|
require 'mocha/setup'
|
3
3
|
|
4
4
|
class Issue65Test < Mocha::TestCase
|
5
|
-
|
6
5
|
include AcceptanceTest
|
7
6
|
|
8
7
|
def setup
|
@@ -16,48 +15,51 @@ class Issue65Test < Mocha::TestCase
|
|
16
15
|
def test_expectations_on_class_methods_on_same_class_should_be_verified_in_consecutive_tests
|
17
16
|
klass = Class.new do
|
18
17
|
def self.foo; end
|
18
|
+
|
19
19
|
def self.bar; end
|
20
20
|
end
|
21
|
-
|
21
|
+
test1 = run_as_test do
|
22
22
|
klass.expects(:foo)
|
23
23
|
klass.foo
|
24
24
|
end
|
25
|
-
assert_passed(
|
26
|
-
|
25
|
+
assert_passed(test1)
|
26
|
+
test2 = run_as_test do
|
27
27
|
klass.expects(:bar)
|
28
28
|
end
|
29
|
-
assert_failed(
|
29
|
+
assert_failed(test2)
|
30
30
|
end
|
31
31
|
|
32
32
|
def test_expectations_on_any_instance_methods_on_same_class_should_be_verified_in_consecutive_tests
|
33
33
|
klass = Class.new do
|
34
34
|
def foo; end
|
35
|
+
|
35
36
|
def bar; end
|
36
37
|
end
|
37
|
-
|
38
|
+
test1 = run_as_test do
|
38
39
|
klass.any_instance.expects(:foo)
|
39
40
|
klass.new.foo
|
40
41
|
end
|
41
|
-
assert_passed(
|
42
|
-
|
42
|
+
assert_passed(test1)
|
43
|
+
test2 = run_as_test do
|
43
44
|
klass.any_instance.expects(:bar)
|
44
45
|
end
|
45
|
-
assert_failed(
|
46
|
+
assert_failed(test2)
|
46
47
|
end
|
47
48
|
|
48
49
|
def test_expectations_on_instance_methods_on_same_object_should_be_verified_in_consecutive_tests
|
49
50
|
instance = Class.new do
|
50
51
|
def foo; end
|
52
|
+
|
51
53
|
def bar; end
|
52
54
|
end.new
|
53
|
-
|
55
|
+
test1 = run_as_test do
|
54
56
|
instance.expects(:foo)
|
55
57
|
instance.foo
|
56
58
|
end
|
57
|
-
assert_passed(
|
58
|
-
|
59
|
+
assert_passed(test1)
|
60
|
+
test2 = run_as_test do
|
59
61
|
instance.expects(:bar)
|
60
62
|
end
|
61
|
-
assert_failed(
|
63
|
+
assert_failed(test2)
|
62
64
|
end
|
63
65
|
end
|
@@ -2,11 +2,12 @@ require File.expand_path('../../test_helper', __FILE__)
|
|
2
2
|
require 'mocha/setup'
|
3
3
|
|
4
4
|
class MochaExampleTest < Mocha::TestCase
|
5
|
-
|
6
5
|
class Rover
|
7
|
-
|
8
6
|
def initialize(left_track, right_track, steps_per_metre, steps_per_degree)
|
9
|
-
@left_track
|
7
|
+
@left_track = left_track
|
8
|
+
@right_track = right_track
|
9
|
+
@steps_per_metre = steps_per_metre
|
10
|
+
@steps_per_degree = steps_per_degree
|
10
11
|
end
|
11
12
|
|
12
13
|
def forward(metres)
|
@@ -30,9 +31,8 @@ class MochaExampleTest < Mocha::TestCase
|
|
30
31
|
end
|
31
32
|
|
32
33
|
def wait
|
33
|
-
while
|
34
|
+
while @left_track.moving? || @right_track.moving?; end
|
34
35
|
end
|
35
|
-
|
36
36
|
end
|
37
37
|
|
38
38
|
def test_should_step_both_tracks_forward_ten_steps
|
@@ -94,5 +94,4 @@ class MochaExampleTest < Mocha::TestCase
|
|
94
94
|
|
95
95
|
rover.left(90)
|
96
96
|
end
|
97
|
-
|
98
97
|
end
|
@@ -3,7 +3,6 @@ require 'mocha/setup'
|
|
3
3
|
require 'execution_point'
|
4
4
|
|
5
5
|
class MochaTestResultTest < Mocha::TestCase
|
6
|
-
|
7
6
|
include AcceptanceTest
|
8
7
|
|
9
8
|
def setup
|
@@ -16,7 +15,7 @@ class MochaTestResultTest < Mocha::TestCase
|
|
16
15
|
|
17
16
|
def test_should_include_expectation_verification_in_assertion_count
|
18
17
|
test_result = run_as_test do
|
19
|
-
object = mock
|
18
|
+
object = mock
|
20
19
|
object.expects(:message)
|
21
20
|
object.message
|
22
21
|
end
|
@@ -32,7 +31,7 @@ class MochaTestResultTest < Mocha::TestCase
|
|
32
31
|
|
33
32
|
def test_should_not_include_stubbing_expectation_verification_in_assertion_count
|
34
33
|
test_result = run_as_test do
|
35
|
-
object = mock
|
34
|
+
object = mock
|
36
35
|
object.stubs(:message)
|
37
36
|
object.message
|
38
37
|
end
|
@@ -41,7 +40,7 @@ class MochaTestResultTest < Mocha::TestCase
|
|
41
40
|
|
42
41
|
def test_should_include_expectation_verification_failure_in_failure_count
|
43
42
|
test_result = run_as_test do
|
44
|
-
object = mock
|
43
|
+
object = mock
|
45
44
|
object.expects(:message)
|
46
45
|
end
|
47
46
|
assert_equal 1, test_result.failure_count
|
@@ -49,7 +48,7 @@ class MochaTestResultTest < Mocha::TestCase
|
|
49
48
|
|
50
49
|
def test_should_include_unexpected_verification_failure_in_failure_count
|
51
50
|
test_result = run_as_test do
|
52
|
-
object = mock
|
51
|
+
object = mock
|
53
52
|
object.message
|
54
53
|
end
|
55
54
|
assert_equal 1, test_result.failure_count
|
@@ -62,10 +61,11 @@ class MochaTestResultTest < Mocha::TestCase
|
|
62
61
|
assert_equal 1, test_result.failure_count
|
63
62
|
end
|
64
63
|
|
64
|
+
# rubocop:disable Style/Semicolon
|
65
65
|
def test_should_display_backtrace_indicating_line_number_where_unexpected_method_was_called
|
66
66
|
execution_point = nil
|
67
67
|
test_result = run_as_test do
|
68
|
-
object = mock
|
68
|
+
object = mock
|
69
69
|
execution_point = ExecutionPoint.current; object.message
|
70
70
|
end
|
71
71
|
assert_equal 1, test_result.failure_count
|
@@ -80,5 +80,5 @@ class MochaTestResultTest < Mocha::TestCase
|
|
80
80
|
assert_equal 1, test_result.failure_count
|
81
81
|
assert_equal execution_point, ExecutionPoint.new(test_result.failures[0].location)
|
82
82
|
end
|
83
|
-
|
83
|
+
# rubocop:enable Style/Semicolon
|
84
84
|
end
|
@@ -2,7 +2,6 @@ require File.expand_path('../acceptance_test_helper', __FILE__)
|
|
2
2
|
require 'mocha/setup'
|
3
3
|
|
4
4
|
class MockTest < Mocha::TestCase
|
5
|
-
|
6
5
|
include AcceptanceTest
|
7
6
|
|
8
7
|
def setup
|
@@ -15,7 +14,7 @@ class MockTest < Mocha::TestCase
|
|
15
14
|
|
16
15
|
def test_should_build_mock_and_explicitly_add_an_expectation_which_is_satisfied
|
17
16
|
test_result = run_as_test do
|
18
|
-
foo = mock
|
17
|
+
foo = mock
|
19
18
|
foo.expects(:bar)
|
20
19
|
foo.bar
|
21
20
|
end
|
@@ -24,7 +23,7 @@ class MockTest < Mocha::TestCase
|
|
24
23
|
|
25
24
|
def test_should_build_mock_and_explicitly_add_an_expectation_which_is_not_satisfied
|
26
25
|
test_result = run_as_test do
|
27
|
-
foo = mock
|
26
|
+
foo = mock
|
28
27
|
foo.expects(:bar)
|
29
28
|
end
|
30
29
|
assert_failed(test_result)
|
@@ -96,5 +95,4 @@ class MockTest < Mocha::TestCase
|
|
96
95
|
end
|
97
96
|
assert_failed(test_result)
|
98
97
|
end
|
99
|
-
|
100
98
|
end
|
@@ -3,7 +3,6 @@ require 'mocha/setup'
|
|
3
3
|
require 'deprecation_disabler'
|
4
4
|
|
5
5
|
class MockWithInitializerBlockTest < Mocha::TestCase
|
6
|
-
|
7
6
|
include AcceptanceTest
|
8
7
|
|
9
8
|
def setup
|
@@ -54,5 +53,4 @@ class MockWithInitializerBlockTest < Mocha::TestCase
|
|
54
53
|
end
|
55
54
|
assert_passed(test_result)
|
56
55
|
end
|
57
|
-
|
58
56
|
end
|
@@ -2,7 +2,6 @@ require File.expand_path('../acceptance_test_helper', __FILE__)
|
|
2
2
|
require 'mocha/setup'
|
3
3
|
|
4
4
|
class MockedMethodDispatchTest < Mocha::TestCase
|
5
|
-
|
6
5
|
include AcceptanceTest
|
7
6
|
|
8
7
|
def setup
|
@@ -74,5 +73,4 @@ class MockedMethodDispatchTest < Mocha::TestCase
|
|
74
73
|
end
|
75
74
|
assert_passed(test_result)
|
76
75
|
end
|
77
|
-
|
78
76
|
end
|
@@ -2,7 +2,6 @@ require File.expand_path('../acceptance_test_helper', __FILE__)
|
|
2
2
|
require 'mocha/setup'
|
3
3
|
|
4
4
|
class FailureMessageTest < Mocha::TestCase
|
5
|
-
|
6
5
|
include AcceptanceTest
|
7
6
|
|
8
7
|
def setup
|
@@ -21,10 +20,10 @@ class FailureMessageTest < Mocha::TestCase
|
|
21
20
|
end
|
22
21
|
assert_failed(test_result)
|
23
22
|
assert_equal [
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
23
|
+
'unexpected invocation: #<Mock:mock>.method_one()',
|
24
|
+
'unsatisfied expectations:',
|
25
|
+
'- expected exactly once, invoked twice: #<Mock:mock>.method_one(any_parameters)'
|
26
|
+
], test_result.failure_message_lines
|
28
27
|
end
|
29
28
|
|
30
29
|
def test_should_report_satisfied_expectations_as_well_as_unsatisfied_expectations
|
@@ -37,11 +36,11 @@ class FailureMessageTest < Mocha::TestCase
|
|
37
36
|
end
|
38
37
|
assert_failed(test_result)
|
39
38
|
assert_equal [
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
39
|
+
'not all expectations were satisfied',
|
40
|
+
'unsatisfied expectations:',
|
41
|
+
'- expected exactly twice, invoked once: #<Mock:mock>.method_two(any_parameters)',
|
42
|
+
'satisfied expectations:',
|
43
|
+
'- expected exactly once, invoked once: #<Mock:mock>.method_one(any_parameters)'
|
45
44
|
], test_result.failure_message_lines
|
46
45
|
end
|
47
46
|
|
@@ -57,12 +56,12 @@ class FailureMessageTest < Mocha::TestCase
|
|
57
56
|
end
|
58
57
|
assert_failed(test_result)
|
59
58
|
assert_equal [
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
59
|
+
'not all expectations were satisfied',
|
60
|
+
'unsatisfied expectations:',
|
61
|
+
'- expected exactly 3 times, invoked twice: #<Mock:mock>.method_three(any_parameters)',
|
62
|
+
'satisfied expectations:',
|
63
|
+
'- expected exactly twice, invoked twice: #<Mock:mock>.method_two(any_parameters)',
|
64
|
+
'- expected exactly once, invoked once: #<Mock:mock>.method_one(any_parameters)'
|
65
|
+
], test_result.failure_message_lines
|
67
66
|
end
|
68
67
|
end
|
@@ -2,7 +2,6 @@ require File.expand_path('../acceptance_test_helper', __FILE__)
|
|
2
2
|
require 'mocha/setup'
|
3
3
|
|
4
4
|
class OptionalParameterMatcherTest < Mocha::TestCase
|
5
|
-
|
6
5
|
include AcceptanceTest
|
7
6
|
|
8
7
|
def setup
|
@@ -66,5 +65,4 @@ class OptionalParameterMatcherTest < Mocha::TestCase
|
|
66
65
|
end
|
67
66
|
assert_failed(test_result)
|
68
67
|
end
|
69
|
-
|
70
68
|
end
|