mocha 1.11.2 → 1.12.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 +4 -4
- data/CONTRIBUTING.md +1 -1
- data/README.md +28 -30
- data/RELEASE.md +25 -0
- data/Rakefile +6 -1
- data/lib/mocha/cardinality.rb +30 -27
- data/lib/mocha/expectation.rb +24 -24
- data/lib/mocha/mock.rb +1 -1
- data/lib/mocha/mockery.rb +9 -22
- data/lib/mocha/state_machine.rb +30 -38
- data/lib/mocha/version.rb +1 -1
- data/mocha.gemspec +3 -1
- metadata +5 -192
- data/docs/CNAME +0 -1
- data/docs/Mocha.html +0 -254
- data/docs/Mocha/API.html +0 -1285
- data/docs/Mocha/ClassMethods.html +0 -264
- data/docs/Mocha/Configuration.html +0 -1525
- data/docs/Mocha/Expectation.html +0 -2862
- data/docs/Mocha/ExpectationError.html +0 -152
- data/docs/Mocha/ExpectationErrorFactory.html +0 -260
- data/docs/Mocha/Hooks.html +0 -370
- data/docs/Mocha/Integration.html +0 -125
- data/docs/Mocha/Integration/MiniTest.html +0 -123
- data/docs/Mocha/Integration/MiniTest/Adapter.html +0 -164
- data/docs/Mocha/Integration/TestUnit.html +0 -123
- data/docs/Mocha/Integration/TestUnit/Adapter.html +0 -164
- data/docs/Mocha/Mock.html +0 -1210
- data/docs/Mocha/ObjectMethods.html +0 -765
- data/docs/Mocha/ParameterMatchers.html +0 -2949
- data/docs/Mocha/ParameterMatchers/AllOf.html +0 -153
- data/docs/Mocha/ParameterMatchers/AnyOf.html +0 -153
- data/docs/Mocha/ParameterMatchers/AnyParameters.html +0 -153
- data/docs/Mocha/ParameterMatchers/Anything.html +0 -153
- data/docs/Mocha/ParameterMatchers/Base.html +0 -441
- data/docs/Mocha/ParameterMatchers/Equals.html +0 -153
- data/docs/Mocha/ParameterMatchers/EquivalentUri.html +0 -153
- data/docs/Mocha/ParameterMatchers/HasEntries.html +0 -153
- data/docs/Mocha/ParameterMatchers/HasEntry.html +0 -153
- data/docs/Mocha/ParameterMatchers/HasKey.html +0 -153
- data/docs/Mocha/ParameterMatchers/HasValue.html +0 -153
- data/docs/Mocha/ParameterMatchers/Includes.html +0 -153
- data/docs/Mocha/ParameterMatchers/InstanceOf.html +0 -153
- data/docs/Mocha/ParameterMatchers/IsA.html +0 -153
- data/docs/Mocha/ParameterMatchers/KindOf.html +0 -153
- data/docs/Mocha/ParameterMatchers/Not.html +0 -153
- data/docs/Mocha/ParameterMatchers/Optionally.html +0 -153
- data/docs/Mocha/ParameterMatchers/RegexpMatches.html +0 -153
- data/docs/Mocha/ParameterMatchers/RespondsWith.html +0 -153
- data/docs/Mocha/ParameterMatchers/YamlEquivalent.html +0 -153
- data/docs/Mocha/Sequence.html +0 -149
- data/docs/Mocha/StateMachine.html +0 -527
- data/docs/Mocha/StateMachine/State.html +0 -140
- data/docs/Mocha/StateMachine/StatePredicate.html +0 -140
- data/docs/Mocha/StubbingError.html +0 -150
- data/docs/_index.html +0 -519
- data/docs/class_list.html +0 -51
- data/docs/css/common.css +0 -1
- data/docs/css/full_list.css +0 -58
- data/docs/css/style.css +0 -496
- data/docs/file.COPYING.html +0 -81
- data/docs/file.MIT-LICENSE.html +0 -85
- data/docs/file.README.html +0 -448
- data/docs/file.RELEASE.html +0 -1028
- data/docs/file_list.html +0 -71
- data/docs/frames.html +0 -17
- data/docs/index.html +0 -448
- data/docs/js/app.js +0 -303
- data/docs/js/full_list.js +0 -216
- data/docs/js/jquery.js +0 -4
- data/docs/method_list.html +0 -651
- data/docs/top-level-namespace.html +0 -118
- data/test/acceptance/acceptance_test_helper.rb +0 -42
- data/test/acceptance/bug_18914_test.rb +0 -37
- data/test/acceptance/bug_21465_test.rb +0 -31
- data/test/acceptance/bug_21563_test.rb +0 -22
- data/test/acceptance/display_matching_invocations_alongside_expectations_test.rb +0 -69
- data/test/acceptance/exception_rescue_test.rb +0 -53
- data/test/acceptance/expectations_on_multiple_methods_test.rb +0 -55
- data/test/acceptance/expected_invocation_count_test.rb +0 -229
- data/test/acceptance/failure_messages_test.rb +0 -77
- data/test/acceptance/issue_272_test.rb +0 -50
- data/test/acceptance/issue_457_test.rb +0 -31
- data/test/acceptance/issue_65_test.rb +0 -64
- data/test/acceptance/issue_70_test.rb +0 -53
- data/test/acceptance/mocha_example_test.rb +0 -106
- data/test/acceptance/mocha_test_result_test.rb +0 -83
- data/test/acceptance/mock_built_with_first_argument_type_being_string_test.rb +0 -98
- data/test/acceptance/mock_test.rb +0 -191
- data/test/acceptance/mocked_methods_dispatch_test.rb +0 -75
- data/test/acceptance/multiple_expectations_failure_message_test.rb +0 -66
- data/test/acceptance/multiple_yielding_test.rb +0 -59
- data/test/acceptance/optional_parameters_test.rb +0 -67
- data/test/acceptance/parameter_matcher_test.rb +0 -299
- data/test/acceptance/partial_mocks_test.rb +0 -44
- data/test/acceptance/prepend_test.rb +0 -86
- data/test/acceptance/prevent_use_of_mocha_outside_test_test.rb +0 -76
- data/test/acceptance/raise_exception_test.rb +0 -36
- data/test/acceptance/return_value_test.rb +0 -49
- data/test/acceptance/sequence_test.rb +0 -189
- data/test/acceptance/states_test.rb +0 -71
- data/test/acceptance/stub_any_instance_method_defined_on_superclass_test.rb +0 -64
- data/test/acceptance/stub_any_instance_method_test.rb +0 -301
- data/test/acceptance/stub_class_method_defined_on_active_record_association_proxy_test.rb +0 -105
- 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 -73
- data/test/acceptance/stub_class_method_defined_on_superclass_test.rb +0 -144
- data/test/acceptance/stub_everything_test.rb +0 -53
- data/test/acceptance/stub_instance_method_defined_on_active_record_association_proxy_test.rb +0 -91
- data/test/acceptance/stub_instance_method_defined_on_class_and_aliased_test.rb +0 -67
- data/test/acceptance/stub_instance_method_defined_on_class_test.rb +0 -67
- data/test/acceptance/stub_instance_method_defined_on_kernel_module_test.rb +0 -136
- data/test/acceptance/stub_instance_method_defined_on_module_test.rb +0 -76
- 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 -67
- data/test/acceptance/stub_instance_method_defined_on_superclass_test.rb +0 -70
- data/test/acceptance/stub_method_defined_on_module_and_aliased_test.rb +0 -38
- data/test/acceptance/stub_module_method_test.rb +0 -200
- data/test/acceptance/stub_test.rb +0 -49
- data/test/acceptance/stubba_example_test.rb +0 -103
- data/test/acceptance/stubba_test_result_test.rb +0 -71
- data/test/acceptance/stubbing_error_backtrace_test.rb +0 -63
- data/test/acceptance/stubbing_frozen_object_test.rb +0 -88
- data/test/acceptance/stubbing_method_accepting_block_parameter_test.rb +0 -52
- data/test/acceptance/stubbing_method_unnecessarily_test.rb +0 -63
- data/test/acceptance/stubbing_nil_test.rb +0 -60
- data/test/acceptance/stubbing_non_existent_any_instance_method_test.rb +0 -157
- data/test/acceptance/stubbing_non_existent_class_method_test.rb +0 -157
- data/test/acceptance/stubbing_non_existent_instance_method_test.rb +0 -145
- data/test/acceptance/stubbing_non_public_any_instance_method_test.rb +0 -128
- data/test/acceptance/stubbing_non_public_class_method_test.rb +0 -163
- data/test/acceptance/stubbing_non_public_instance_method_test.rb +0 -141
- data/test/acceptance/stubbing_on_non_mock_object_test.rb +0 -70
- data/test/acceptance/stubbing_same_class_method_on_parent_and_child_classes_test.rb +0 -33
- data/test/acceptance/throw_test.rb +0 -42
- data/test/acceptance/unexpected_invocation_test.rb +0 -23
- data/test/acceptance/unstubbing_test.rb +0 -194
- data/test/acceptance/yielding_test.rb +0 -80
- 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 -178
- data/test/integration/test_unit_test.rb +0 -8
- data/test/method_definer.rb +0 -16
- data/test/mini_test_result.rb +0 -96
- data/test/minitest_result.rb +0 -48
- data/test/simple_counter.rb +0 -11
- data/test/test_helper.rb +0 -58
- data/test/test_runner.rb +0 -58
- data/test/test_unit_result.rb +0 -22
- data/test/unit/any_instance_method_test.rb +0 -175
- data/test/unit/array_inspect_test.rb +0 -14
- data/test/unit/backtrace_filter_test.rb +0 -17
- data/test/unit/cardinality_test.rb +0 -72
- data/test/unit/central_test.rb +0 -98
- data/test/unit/change_state_side_effect_test.rb +0 -37
- data/test/unit/class_methods_test.rb +0 -69
- data/test/unit/configuration_test.rb +0 -37
- data/test/unit/date_time_inspect_test.rb +0 -19
- data/test/unit/exception_raiser_test.rb +0 -45
- data/test/unit/expectation_list_test.rb +0 -82
- data/test/unit/expectation_test.rb +0 -504
- data/test/unit/hash_inspect_test.rb +0 -14
- data/test/unit/hooks_test.rb +0 -35
- data/test/unit/in_state_ordering_constraint_test.rb +0 -39
- data/test/unit/instance_method_test.rb +0 -282
- data/test/unit/method_matcher_test.rb +0 -26
- data/test/unit/mock_test.rb +0 -372
- data/test/unit/mockery_test.rb +0 -171
- data/test/unit/module_methods_test.rb +0 -16
- data/test/unit/object_inspect_test.rb +0 -60
- data/test/unit/object_methods_test.rb +0 -63
- data/test/unit/parameter_matchers/all_of_test.rb +0 -24
- data/test/unit/parameter_matchers/any_of_test.rb +0 -24
- data/test/unit/parameter_matchers/anything_test.rb +0 -19
- data/test/unit/parameter_matchers/equals_test.rb +0 -23
- data/test/unit/parameter_matchers/equivalent_uri_test.rb +0 -41
- data/test/unit/parameter_matchers/has_entries_test.rb +0 -51
- data/test/unit/parameter_matchers/has_entry_test.rb +0 -128
- data/test/unit/parameter_matchers/has_key_test.rb +0 -54
- data/test/unit/parameter_matchers/has_value_test.rb +0 -55
- data/test/unit/parameter_matchers/includes_test.rb +0 -106
- data/test/unit/parameter_matchers/instance_of_test.rb +0 -23
- data/test/unit/parameter_matchers/is_a_test.rb +0 -23
- data/test/unit/parameter_matchers/kind_of_test.rb +0 -23
- data/test/unit/parameter_matchers/not_test.rb +0 -24
- data/test/unit/parameter_matchers/regexp_matches_test.rb +0 -45
- data/test/unit/parameter_matchers/responds_with_test.rb +0 -38
- data/test/unit/parameter_matchers/stub_matcher.rb +0 -23
- data/test/unit/parameter_matchers/yaml_equivalent_test.rb +0 -23
- data/test/unit/parameters_matcher_test.rb +0 -119
- data/test/unit/receivers_test.rb +0 -96
- data/test/unit/return_values_test.rb +0 -66
- data/test/unit/sequence_test.rb +0 -100
- data/test/unit/single_return_value_test.rb +0 -17
- data/test/unit/state_machine_test.rb +0 -96
- data/test/unit/string_inspect_test.rb +0 -9
- data/test/unit/thrower_test.rb +0 -23
- data/test/unit/yield_parameters_test.rb +0 -73
data/test/assertions.rb
DELETED
@@ -1,8 +0,0 @@
|
|
1
|
-
require 'mocha/ruby_version'
|
2
|
-
|
3
|
-
module Assertions
|
4
|
-
def assert_method_visibility(object, method_name, visiblity)
|
5
|
-
method_key = Mocha::PRE_RUBY_V19 ? method_name.to_s : method_name.to_sym
|
6
|
-
assert object.send("#{visiblity}_methods").include?(method_key), "#{method_name} is not #{visiblity}"
|
7
|
-
end
|
8
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
require 'mocha/deprecation'
|
2
|
-
|
3
|
-
module DeprecationDisabler
|
4
|
-
def disable_deprecations
|
5
|
-
original_mode = Mocha::Deprecation.mode
|
6
|
-
Mocha::Deprecation.mode = :disabled
|
7
|
-
begin
|
8
|
-
yield
|
9
|
-
ensure
|
10
|
-
Mocha::Deprecation.mode = original_mode
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
module_function :disable_deprecations
|
15
|
-
end
|
data/test/execution_point.rb
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
class ExecutionPoint
|
2
|
-
attr_reader :backtrace
|
3
|
-
|
4
|
-
def self.current
|
5
|
-
new(caller)
|
6
|
-
end
|
7
|
-
|
8
|
-
def initialize(backtrace)
|
9
|
-
@backtrace = backtrace
|
10
|
-
end
|
11
|
-
|
12
|
-
def first_relevant_line_of_backtrace
|
13
|
-
@backtrace && (@backtrace.reject { |l| %r{\Aorg/jruby/}.match(l) }.first || 'unknown:0')
|
14
|
-
end
|
15
|
-
|
16
|
-
def file_name
|
17
|
-
/\A(.*?):\d+/.match(first_relevant_line_of_backtrace)[1]
|
18
|
-
end
|
19
|
-
|
20
|
-
def line_number
|
21
|
-
Integer(/\A.*?:(\d+)/.match(first_relevant_line_of_backtrace)[1])
|
22
|
-
end
|
23
|
-
|
24
|
-
def ==(other)
|
25
|
-
return false unless other.is_a?(ExecutionPoint)
|
26
|
-
(file_name == other.file_name) && (line_number == other.line_number)
|
27
|
-
end
|
28
|
-
|
29
|
-
def to_s
|
30
|
-
"file: #{file_name}; line: #{line_number}"
|
31
|
-
end
|
32
|
-
|
33
|
-
def inspect
|
34
|
-
to_s
|
35
|
-
end
|
36
|
-
end
|
@@ -1,178 +0,0 @@
|
|
1
|
-
require 'test_runner'
|
2
|
-
require 'execution_point'
|
3
|
-
|
4
|
-
# rubocop:disable Metrics/ModuleLength
|
5
|
-
module SharedTests
|
6
|
-
include TestRunner
|
7
|
-
|
8
|
-
def test_assertion_satisfied
|
9
|
-
test_result = run_as_test do
|
10
|
-
assert true
|
11
|
-
end
|
12
|
-
assert_passed(test_result)
|
13
|
-
end
|
14
|
-
|
15
|
-
# rubocop:disable Style/Semicolon
|
16
|
-
def test_assertion_unsatisfied
|
17
|
-
execution_point = nil
|
18
|
-
test_result = run_as_test do
|
19
|
-
execution_point = ExecutionPoint.current; flunk
|
20
|
-
end
|
21
|
-
assert_failed(test_result)
|
22
|
-
failure = test_result.failures.first
|
23
|
-
assert_equal execution_point, ExecutionPoint.new(failure.location)
|
24
|
-
end
|
25
|
-
|
26
|
-
def test_mock_object_unexpected_invocation
|
27
|
-
execution_point = nil
|
28
|
-
test_result = run_as_test do
|
29
|
-
mock = mock('not expecting invocation')
|
30
|
-
execution_point = ExecutionPoint.current; mock.unexpected
|
31
|
-
end
|
32
|
-
assert_failed(test_result)
|
33
|
-
failure = test_result.failures.first
|
34
|
-
assert_equal execution_point, ExecutionPoint.new(failure.location)
|
35
|
-
assert_equal ['unexpected invocation: #<Mock:not expecting invocation>.unexpected()'], test_result.failure_message_lines
|
36
|
-
end
|
37
|
-
|
38
|
-
def test_mock_object_explicitly_unexpected_invocation
|
39
|
-
execution_point = nil
|
40
|
-
test_result = run_as_test do
|
41
|
-
mock = mock('not expecting invocation')
|
42
|
-
mock.expects(:unexpected).never
|
43
|
-
execution_point = ExecutionPoint.current; mock.unexpected
|
44
|
-
end
|
45
|
-
assert_failed(test_result)
|
46
|
-
failure = test_result.failures.first
|
47
|
-
assert_equal execution_point, ExecutionPoint.new(failure.location)
|
48
|
-
assert_equal [
|
49
|
-
'unexpected invocation: #<Mock:not expecting invocation>.unexpected()',
|
50
|
-
'unsatisfied expectations:',
|
51
|
-
'- expected never, invoked once: #<Mock:not expecting invocation>.unexpected(any_parameters)'
|
52
|
-
], test_result.failure_message_lines
|
53
|
-
end
|
54
|
-
|
55
|
-
def test_mock_object_unsatisfied_expectation
|
56
|
-
execution_point = nil
|
57
|
-
test_result = run_as_test do
|
58
|
-
mock = mock('expecting invocation')
|
59
|
-
execution_point = ExecutionPoint.current; mock.expects(:expected)
|
60
|
-
end
|
61
|
-
assert_failed(test_result)
|
62
|
-
failure = test_result.failures.first
|
63
|
-
assert_equal execution_point, ExecutionPoint.new(failure.location)
|
64
|
-
assert_equal [
|
65
|
-
'not all expectations were satisfied',
|
66
|
-
'unsatisfied expectations:',
|
67
|
-
'- expected exactly once, invoked never: #<Mock:expecting invocation>.expected(any_parameters)'
|
68
|
-
], test_result.failure_message_lines
|
69
|
-
end
|
70
|
-
|
71
|
-
def test_mock_object_unexpected_invocation_in_setup
|
72
|
-
execution_point = nil
|
73
|
-
test_result = run_as_tests(
|
74
|
-
:setup => lambda {
|
75
|
-
mock = mock('not expecting invocation')
|
76
|
-
execution_point = ExecutionPoint.current; mock.unexpected
|
77
|
-
},
|
78
|
-
:test_me => lambda {
|
79
|
-
assert true
|
80
|
-
}
|
81
|
-
)
|
82
|
-
assert_failed(test_result)
|
83
|
-
failure = test_result.failures.first
|
84
|
-
assert_equal execution_point, ExecutionPoint.new(failure.location)
|
85
|
-
assert_equal ['unexpected invocation: #<Mock:not expecting invocation>.unexpected()'], test_result.failure_message_lines
|
86
|
-
end
|
87
|
-
|
88
|
-
def test_mock_object_unsatisfied_expectation_in_setup
|
89
|
-
execution_point = nil
|
90
|
-
test_result = run_as_tests(
|
91
|
-
:setup => lambda {
|
92
|
-
mock = mock('expecting invocation')
|
93
|
-
execution_point = ExecutionPoint.current; mock.expects(:expected)
|
94
|
-
},
|
95
|
-
:test_me => lambda {
|
96
|
-
assert true
|
97
|
-
}
|
98
|
-
)
|
99
|
-
assert_failed(test_result)
|
100
|
-
failure = test_result.failures.first
|
101
|
-
assert_equal execution_point, ExecutionPoint.new(failure.location)
|
102
|
-
assert_equal [
|
103
|
-
'not all expectations were satisfied',
|
104
|
-
'unsatisfied expectations:',
|
105
|
-
'- expected exactly once, invoked never: #<Mock:expecting invocation>.expected(any_parameters)'
|
106
|
-
], test_result.failure_message_lines
|
107
|
-
end
|
108
|
-
|
109
|
-
def test_mock_object_unexpected_invocation_in_teardown
|
110
|
-
execution_point = nil
|
111
|
-
test_result = run_as_tests(
|
112
|
-
:test_me => lambda {
|
113
|
-
assert true
|
114
|
-
},
|
115
|
-
:teardown => lambda {
|
116
|
-
mock = mock('not expecting invocation')
|
117
|
-
execution_point = ExecutionPoint.current; mock.unexpected
|
118
|
-
}
|
119
|
-
)
|
120
|
-
assert_failed(test_result)
|
121
|
-
failure = test_result.failures.first
|
122
|
-
assert_equal execution_point, ExecutionPoint.new(failure.location)
|
123
|
-
assert_equal ['unexpected invocation: #<Mock:not expecting invocation>.unexpected()'], test_result.failure_message_lines
|
124
|
-
end
|
125
|
-
|
126
|
-
def test_real_object_explicitly_unexpected_invocation
|
127
|
-
execution_point = nil
|
128
|
-
object = Object.new
|
129
|
-
test_result = run_as_test do
|
130
|
-
object.expects(:unexpected).never
|
131
|
-
execution_point = ExecutionPoint.current; object.unexpected
|
132
|
-
end
|
133
|
-
assert_failed(test_result)
|
134
|
-
failure = test_result.failures.first
|
135
|
-
assert_equal execution_point, ExecutionPoint.new(failure.location)
|
136
|
-
assert_equal [
|
137
|
-
"unexpected invocation: #{object.mocha_inspect}.unexpected()",
|
138
|
-
'unsatisfied expectations:',
|
139
|
-
"- expected never, invoked once: #{object.mocha_inspect}.unexpected(any_parameters)"
|
140
|
-
], test_result.failure_message_lines
|
141
|
-
end
|
142
|
-
|
143
|
-
def test_real_object_unsatisfied_expectation
|
144
|
-
execution_point = nil
|
145
|
-
object = Object.new
|
146
|
-
test_result = run_as_test do
|
147
|
-
execution_point = ExecutionPoint.current; object.expects(:expected)
|
148
|
-
end
|
149
|
-
assert_failed(test_result)
|
150
|
-
failure = test_result.failures.first
|
151
|
-
assert_equal execution_point, ExecutionPoint.new(failure.location)
|
152
|
-
assert_equal [
|
153
|
-
'not all expectations were satisfied',
|
154
|
-
'unsatisfied expectations:',
|
155
|
-
"- expected exactly once, invoked never: #{object.mocha_inspect}.expected(any_parameters)"
|
156
|
-
], test_result.failure_message_lines
|
157
|
-
end
|
158
|
-
|
159
|
-
def test_real_object_expectation_does_not_leak_into_subsequent_test
|
160
|
-
execution_point = nil
|
161
|
-
klass = Class.new
|
162
|
-
test_result = run_as_tests(
|
163
|
-
:test_1 => lambda {
|
164
|
-
klass.expects(:foo)
|
165
|
-
klass.foo
|
166
|
-
},
|
167
|
-
:test_2 => lambda {
|
168
|
-
execution_point = ExecutionPoint.current; klass.foo
|
169
|
-
}
|
170
|
-
)
|
171
|
-
assert_failed(test_result)
|
172
|
-
exception = test_result.errors.first.exception
|
173
|
-
assert_equal execution_point, ExecutionPoint.new(exception.backtrace)
|
174
|
-
assert_match(/undefined method `foo'/, exception.message)
|
175
|
-
end
|
176
|
-
# rubocop:enable Style/Semicolon
|
177
|
-
end
|
178
|
-
# rubocop:enable Metrics/ModuleLength
|
data/test/method_definer.rb
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
require 'mocha/singleton_class'
|
2
|
-
|
3
|
-
module MethodDefiner
|
4
|
-
def define_instance_method(object, method_symbol, &block)
|
5
|
-
object.singleton_class.send(:define_method, method_symbol, block)
|
6
|
-
end
|
7
|
-
|
8
|
-
def replace_instance_method(object, method_symbol, &block)
|
9
|
-
raise "Cannot replace #{method_symbol} as #{self} does not respond to it." unless object.respond_to?(method_symbol)
|
10
|
-
define_instance_method(object, method_symbol, &block)
|
11
|
-
end
|
12
|
-
|
13
|
-
def define_instance_accessor(object, *symbols)
|
14
|
-
symbols.each { |symbol| object.singleton_class.send(:attr_accessor, symbol) }
|
15
|
-
end
|
16
|
-
end
|
data/test/mini_test_result.rb
DELETED
@@ -1,96 +0,0 @@
|
|
1
|
-
require 'stringio'
|
2
|
-
require 'minitest/unit'
|
3
|
-
|
4
|
-
class MiniTestResult
|
5
|
-
minitest_version = Gem::Version.new(::MiniTest::Unit::VERSION)
|
6
|
-
if Gem::Requirement.new('<= 4.6.1').satisfied_by?(minitest_version)
|
7
|
-
FAILURE_PATTERN = /(Failure)\:\n([^\(]+)\(([^\)]+)\) \[([^\]]+)\]\:\n(.*)\n/m
|
8
|
-
ERROR_PATTERN = /(Error)\:\n([^\(]+)\(([^\)]+)\)\:\n(.+?)\n/m
|
9
|
-
PATTERN_INDICES = { :method => 2, :testcase => 3 }.freeze
|
10
|
-
else
|
11
|
-
FAILURE_PATTERN = /(Failure)\:\n.([^#]+)\#([^ ]+) \[([^\]]+)\]\:\n(.*)\n/m
|
12
|
-
ERROR_PATTERN = /(Error)\:\n.([^#]+)\#([^ ]+)\:\n(.+?)\n/m
|
13
|
-
PATTERN_INDICES = { :method => 3, :testcase => 2 }.freeze
|
14
|
-
end
|
15
|
-
|
16
|
-
def self.parse_failure(raw)
|
17
|
-
matches = FAILURE_PATTERN.match(raw)
|
18
|
-
return nil unless matches
|
19
|
-
Failure.new(matches[PATTERN_INDICES[:method]], matches[PATTERN_INDICES[:testcase]], [matches[4]], matches[5])
|
20
|
-
end
|
21
|
-
|
22
|
-
def self.parse_error(raw)
|
23
|
-
matches = ERROR_PATTERN.match(raw)
|
24
|
-
return nil unless matches
|
25
|
-
backtrace = raw.gsub(ERROR_PATTERN, '').split("\n").map(&:strip)
|
26
|
-
Error.new(matches[PATTERN_INDICES[:method]], matches[PATTERN_INDICES[:testcase]], matches[4], backtrace)
|
27
|
-
end
|
28
|
-
|
29
|
-
class Failure
|
30
|
-
attr_reader :method, :test_case, :location, :message
|
31
|
-
def initialize(method, test_case, location, message)
|
32
|
-
@method = method
|
33
|
-
@test_case = test_case
|
34
|
-
@location = location
|
35
|
-
@message = message
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
class Error
|
40
|
-
class Exception
|
41
|
-
attr_reader :message, :backtrace
|
42
|
-
def initialize(message, location)
|
43
|
-
@message = message
|
44
|
-
@backtrace = location
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
attr_reader :method, :test_case, :exception
|
49
|
-
def initialize(method, test_case, message, backtrace)
|
50
|
-
@method = method
|
51
|
-
@test_case = test_case
|
52
|
-
@exception = Exception.new(message, backtrace)
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
def initialize(runner, tests)
|
57
|
-
@runner = runner
|
58
|
-
@tests = tests
|
59
|
-
end
|
60
|
-
|
61
|
-
def failure_count
|
62
|
-
@runner.failures
|
63
|
-
end
|
64
|
-
|
65
|
-
def assertion_count
|
66
|
-
@tests.inject(0) { |total, test| total + test._assertions }
|
67
|
-
end
|
68
|
-
|
69
|
-
def error_count
|
70
|
-
@runner.errors
|
71
|
-
end
|
72
|
-
|
73
|
-
def passed?
|
74
|
-
@tests.all?(&:passed?)
|
75
|
-
end
|
76
|
-
|
77
|
-
def failures
|
78
|
-
@runner.report.map { |puked| MiniTestResult.parse_failure(puked) }.compact
|
79
|
-
end
|
80
|
-
|
81
|
-
def errors
|
82
|
-
@runner.report.map { |puked| MiniTestResult.parse_error(puked) }.compact
|
83
|
-
end
|
84
|
-
|
85
|
-
def failure_messages
|
86
|
-
failures.map(&:message)
|
87
|
-
end
|
88
|
-
|
89
|
-
def failure_message_lines
|
90
|
-
failure_messages.map { |message| message.split("\n") }.flatten
|
91
|
-
end
|
92
|
-
|
93
|
-
def error_messages
|
94
|
-
errors.map { |e| e.exception.message }
|
95
|
-
end
|
96
|
-
end
|
data/test/minitest_result.rb
DELETED
@@ -1,48 +0,0 @@
|
|
1
|
-
require 'forwardable'
|
2
|
-
|
3
|
-
class MinitestResult
|
4
|
-
class Failure
|
5
|
-
extend Forwardable
|
6
|
-
def_delegators :@failure, :message, :backtrace
|
7
|
-
|
8
|
-
def initialize(failure)
|
9
|
-
@failure = failure
|
10
|
-
end
|
11
|
-
|
12
|
-
def location
|
13
|
-
Minitest.filter_backtrace(backtrace)
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
def initialize(tests)
|
18
|
-
@tests = tests
|
19
|
-
end
|
20
|
-
|
21
|
-
def failures
|
22
|
-
@tests.map(&:failures).flatten.select { |r| r.instance_of?(Minitest::Assertion) }.map { |f| Failure.new(f) }
|
23
|
-
end
|
24
|
-
|
25
|
-
def failure_count
|
26
|
-
failures.length
|
27
|
-
end
|
28
|
-
|
29
|
-
def failure_message_lines
|
30
|
-
failures.map { |f| f.message.split("\n") }.flatten
|
31
|
-
end
|
32
|
-
|
33
|
-
def errors
|
34
|
-
@tests.map(&:failures).flatten.select { |r| r.instance_of?(Minitest::UnexpectedError) }
|
35
|
-
end
|
36
|
-
|
37
|
-
def error_count
|
38
|
-
errors.length
|
39
|
-
end
|
40
|
-
|
41
|
-
def error_messages
|
42
|
-
errors.map { |e| e.message.split("\n") }.flatten
|
43
|
-
end
|
44
|
-
|
45
|
-
def assertion_count
|
46
|
-
@tests.inject(0) { |total, test| total + test.assertions }
|
47
|
-
end
|
48
|
-
end
|
data/test/simple_counter.rb
DELETED
data/test/test_helper.rb
DELETED
@@ -1,58 +0,0 @@
|
|
1
|
-
unless defined?(STANDARD_OBJECT_PUBLIC_INSTANCE_METHODS)
|
2
|
-
STANDARD_OBJECT_PUBLIC_INSTANCE_METHODS = Object.instance_methods + Object.private_instance_methods
|
3
|
-
end
|
4
|
-
|
5
|
-
$LOAD_PATH.unshift File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
|
6
|
-
$LOAD_PATH.unshift File.expand_path(File.join(File.dirname(__FILE__)))
|
7
|
-
$LOAD_PATH.unshift File.expand_path(File.join(File.dirname(__FILE__), 'unit'))
|
8
|
-
$LOAD_PATH.unshift File.expand_path(File.join(File.dirname(__FILE__), 'unit', 'parameter_matchers'))
|
9
|
-
$LOAD_PATH.unshift File.expand_path(File.join(File.dirname(__FILE__), 'acceptance'))
|
10
|
-
|
11
|
-
require 'mocha/detection/mini_test'
|
12
|
-
|
13
|
-
begin
|
14
|
-
require 'minitest'
|
15
|
-
# rubocop:disable Lint/HandleExceptions
|
16
|
-
rescue LoadError
|
17
|
-
end
|
18
|
-
# rubocop:enable Lint/HandleExceptions
|
19
|
-
begin
|
20
|
-
require 'minitest/unit'
|
21
|
-
# rubocop:disable Lint/HandleExceptions
|
22
|
-
rescue LoadError
|
23
|
-
end
|
24
|
-
# rubocop:enable Lint/HandleExceptions
|
25
|
-
|
26
|
-
module Mocha; end
|
27
|
-
|
28
|
-
if (minitest_testcase = Mocha::Detection::MiniTest.testcase) && (ENV['MOCHA_RUN_INTEGRATION_TESTS'] != 'test-unit')
|
29
|
-
begin
|
30
|
-
require 'minitest/autorun'
|
31
|
-
rescue LoadError
|
32
|
-
MiniTest::Unit.autorun
|
33
|
-
end
|
34
|
-
# rubocop:disable Style/ClassAndModuleChildren
|
35
|
-
class Mocha::TestCase < minitest_testcase
|
36
|
-
def assert_nothing_raised(exception = StandardError)
|
37
|
-
yield
|
38
|
-
rescue exception => e
|
39
|
-
flunk "Unexpected exception raised: #{e}"
|
40
|
-
end
|
41
|
-
|
42
|
-
alias_method :assert_not_nil, :refute_nil
|
43
|
-
alias_method :assert_raise, :assert_raises
|
44
|
-
alias_method :assert_not_same, :refute_same
|
45
|
-
alias_method :assert_no_match, :refute_match
|
46
|
-
end
|
47
|
-
# rubocop:enable Style/ClassAndModuleChildren
|
48
|
-
else
|
49
|
-
require 'test/unit'
|
50
|
-
# rubocop:disable Style/ClassAndModuleChildren
|
51
|
-
class Mocha::TestCase < Test::Unit::TestCase
|
52
|
-
def test_dummy
|
53
|
-
# Some versions (?) of Test::Unit try to run this base class as a test case
|
54
|
-
# and it fails because it has no test methods, so I'm adding a dummy test.
|
55
|
-
end
|
56
|
-
end
|
57
|
-
# rubocop:enable Style/ClassAndModuleChildren
|
58
|
-
end
|