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
@@ -1,76 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
require 'mocha/not_initialized_error'
|
3
|
-
|
4
|
-
class PreventUseOfMochaOutsideTestTest < Mocha::TestCase
|
5
|
-
include AcceptanceTest
|
6
|
-
|
7
|
-
def setup
|
8
|
-
setup_acceptance_test
|
9
|
-
mocha_teardown
|
10
|
-
end
|
11
|
-
|
12
|
-
def teardown
|
13
|
-
teardown_acceptance_test
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_should_raise_exception_when_mock_called_outside_test
|
17
|
-
assert_raises(Mocha::NotInitializedError) { mock('object') }
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_should_raise_exception_when_stub_called_outside_test
|
21
|
-
assert_raises(Mocha::NotInitializedError) { stub('object') }
|
22
|
-
end
|
23
|
-
|
24
|
-
def test_should_raise_exception_when_stub_everything_called_outside_test
|
25
|
-
assert_raises(Mocha::NotInitializedError) { stub_everything('object') }
|
26
|
-
end
|
27
|
-
|
28
|
-
def test_should_raise_exception_when_states_called_outside_test
|
29
|
-
assert_raises(Mocha::NotInitializedError) { states('state-machine') }
|
30
|
-
end
|
31
|
-
|
32
|
-
def test_should_raise_exception_when_expects_called_on_instance_outside_test
|
33
|
-
instance = Class.new.new
|
34
|
-
assert_raises(Mocha::NotInitializedError) { instance.expects(:expected_method) }
|
35
|
-
end
|
36
|
-
|
37
|
-
def test_should_raise_exception_when_expects_called_on_class_outside_test
|
38
|
-
klass = Class.new
|
39
|
-
assert_raises(Mocha::NotInitializedError) { klass.expects(:expected_method) }
|
40
|
-
end
|
41
|
-
|
42
|
-
def test_should_raise_exception_when_expects_called_on_any_instance_outside_test
|
43
|
-
klass = Class.new
|
44
|
-
assert_raises(Mocha::NotInitializedError) { klass.any_instance.expects(:expected_method) }
|
45
|
-
end
|
46
|
-
|
47
|
-
def test_should_raise_exception_when_stubs_called_on_instance_outside_test
|
48
|
-
instance = Class.new.new
|
49
|
-
assert_raises(Mocha::NotInitializedError) { instance.stubs(:expected_method) }
|
50
|
-
end
|
51
|
-
|
52
|
-
def test_should_raise_exception_when_stubs_called_on_class_outside_test
|
53
|
-
klass = Class.new
|
54
|
-
assert_raises(Mocha::NotInitializedError) { klass.stubs(:expected_method) }
|
55
|
-
end
|
56
|
-
|
57
|
-
def test_should_raise_exception_when_stubs_called_on_any_instance_outside_test
|
58
|
-
klass = Class.new
|
59
|
-
assert_raises(Mocha::NotInitializedError) { klass.any_instance.stubs(:expected_method) }
|
60
|
-
end
|
61
|
-
|
62
|
-
def test_should_raise_exception_when_unstub_called_on_instance_outside_test
|
63
|
-
instance = Class.new.new
|
64
|
-
assert_raises(Mocha::NotInitializedError) { instance.unstub(:expected_method) }
|
65
|
-
end
|
66
|
-
|
67
|
-
def test_should_raise_exception_when_unstub_called_on_class_outside_test
|
68
|
-
klass = Class.new
|
69
|
-
assert_raises(Mocha::NotInitializedError) { klass.unstub(:expected_method) }
|
70
|
-
end
|
71
|
-
|
72
|
-
def test_should_raise_exception_when_unstub_called_on_any_instance_outside_test
|
73
|
-
klass = Class.new
|
74
|
-
assert_raises(Mocha::NotInitializedError) { klass.any_instance.unstub(:expected_method) }
|
75
|
-
end
|
76
|
-
end
|
@@ -1,36 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
|
3
|
-
class RaiseExceptionTest < Mocha::TestCase
|
4
|
-
include AcceptanceTest
|
5
|
-
|
6
|
-
def setup
|
7
|
-
setup_acceptance_test
|
8
|
-
end
|
9
|
-
|
10
|
-
def teardown
|
11
|
-
teardown_acceptance_test
|
12
|
-
end
|
13
|
-
|
14
|
-
def test_should_raise_exception
|
15
|
-
exception_class = Class.new(StandardError)
|
16
|
-
test_result = run_as_test do
|
17
|
-
foo = stub('foo')
|
18
|
-
foo.stubs(:bar).raises(exception_class, 'my-message')
|
19
|
-
exception = assert_raises(exception_class) { foo.bar }
|
20
|
-
assert_equal 'my-message', exception.message
|
21
|
-
end
|
22
|
-
assert_passed(test_result)
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_should_raise_two_different_exceptions
|
26
|
-
exception_one_class = Class.new(StandardError)
|
27
|
-
exception_two_class = Class.new(StandardError)
|
28
|
-
test_result = run_as_test do
|
29
|
-
foo = stub('foo')
|
30
|
-
foo.stubs(:bar).raises(exception_one_class).then.raises(exception_two_class)
|
31
|
-
assert_raises(exception_one_class) { foo.bar }
|
32
|
-
assert_raises(exception_two_class) { foo.bar }
|
33
|
-
end
|
34
|
-
assert_passed(test_result)
|
35
|
-
end
|
36
|
-
end
|
@@ -1,49 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
|
3
|
-
class ReturnValueTest < Mocha::TestCase
|
4
|
-
include AcceptanceTest
|
5
|
-
|
6
|
-
def setup
|
7
|
-
setup_acceptance_test
|
8
|
-
end
|
9
|
-
|
10
|
-
def teardown
|
11
|
-
teardown_acceptance_test
|
12
|
-
end
|
13
|
-
|
14
|
-
def test_should_build_mock_and_explicitly_add_an_expectation_with_a_return_value
|
15
|
-
test_result = run_as_test do
|
16
|
-
foo = mock('foo')
|
17
|
-
foo.expects(:bar).returns('bar')
|
18
|
-
assert_equal 'bar', foo.bar
|
19
|
-
end
|
20
|
-
assert_passed(test_result)
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_should_build_mock_incorporating_two_expectations_with_return_values
|
24
|
-
test_result = run_as_test do
|
25
|
-
foo = mock('foo', :bar => 'bar', :baz => 'baz')
|
26
|
-
assert_equal 'bar', foo.bar
|
27
|
-
assert_equal 'baz', foo.baz
|
28
|
-
end
|
29
|
-
assert_passed(test_result)
|
30
|
-
end
|
31
|
-
|
32
|
-
def test_should_build_stub_and_explicitly_add_an_expectation_with_a_return_value
|
33
|
-
test_result = run_as_test do
|
34
|
-
foo = stub('foo')
|
35
|
-
foo.stubs(:bar).returns('bar')
|
36
|
-
assert_equal 'bar', foo.bar
|
37
|
-
end
|
38
|
-
assert_passed(test_result)
|
39
|
-
end
|
40
|
-
|
41
|
-
def test_should_build_stub_incorporating_two_expectations_with_return_values
|
42
|
-
test_result = run_as_test do
|
43
|
-
foo = stub('foo', :bar => 'bar', :baz => 'baz')
|
44
|
-
assert_equal 'bar', foo.bar
|
45
|
-
assert_equal 'baz', foo.baz
|
46
|
-
end
|
47
|
-
assert_passed(test_result)
|
48
|
-
end
|
49
|
-
end
|
@@ -1,189 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
|
3
|
-
class SequenceTest < Mocha::TestCase
|
4
|
-
include AcceptanceTest
|
5
|
-
|
6
|
-
def setup
|
7
|
-
setup_acceptance_test
|
8
|
-
end
|
9
|
-
|
10
|
-
def teardown
|
11
|
-
teardown_acceptance_test
|
12
|
-
end
|
13
|
-
|
14
|
-
def test_should_constrain_invocations_to_occur_in_expected_order
|
15
|
-
test_result = run_as_test do
|
16
|
-
mock = mock()
|
17
|
-
sequence = sequence('one')
|
18
|
-
|
19
|
-
mock.expects(:first).in_sequence(sequence)
|
20
|
-
mock.expects(:second).in_sequence(sequence)
|
21
|
-
|
22
|
-
mock.second
|
23
|
-
mock.first
|
24
|
-
end
|
25
|
-
assert_failed(test_result)
|
26
|
-
end
|
27
|
-
|
28
|
-
def test_should_allow_invocations_in_sequence
|
29
|
-
test_result = run_as_test do
|
30
|
-
mock = mock()
|
31
|
-
sequence = sequence('one')
|
32
|
-
|
33
|
-
mock.expects(:first).in_sequence(sequence)
|
34
|
-
mock.expects(:second).in_sequence(sequence)
|
35
|
-
|
36
|
-
mock.first
|
37
|
-
mock.second
|
38
|
-
end
|
39
|
-
assert_passed(test_result)
|
40
|
-
end
|
41
|
-
|
42
|
-
def test_should_constrain_invocations_to_occur_in_expected_order_even_if_expected_on_different_mocks
|
43
|
-
test_result = run_as_test do
|
44
|
-
mock_one = mock('1')
|
45
|
-
mock_two = mock('2')
|
46
|
-
sequence = sequence('one')
|
47
|
-
|
48
|
-
mock_one.expects(:first).in_sequence(sequence)
|
49
|
-
mock_two.expects(:second).in_sequence(sequence)
|
50
|
-
|
51
|
-
mock_two.second
|
52
|
-
mock_one.first
|
53
|
-
end
|
54
|
-
assert_failed(test_result)
|
55
|
-
end
|
56
|
-
|
57
|
-
def test_should_allow_invocations_in_sequence_even_if_expected_on_different_mocks
|
58
|
-
test_result = run_as_test do
|
59
|
-
mock_one = mock('1')
|
60
|
-
mock_two = mock('2')
|
61
|
-
sequence = sequence('one')
|
62
|
-
|
63
|
-
mock_one.expects(:first).in_sequence(sequence)
|
64
|
-
mock_two.expects(:second).in_sequence(sequence)
|
65
|
-
|
66
|
-
mock_one.first
|
67
|
-
mock_two.second
|
68
|
-
end
|
69
|
-
assert_passed(test_result)
|
70
|
-
end
|
71
|
-
|
72
|
-
def test_should_constrain_invocations_to_occur_in_expected_order_even_if_expected_on_partial_mocks
|
73
|
-
test_result = run_as_test do
|
74
|
-
partial_mock_one = '1'
|
75
|
-
partial_mock_two = '2'
|
76
|
-
sequence = sequence('one')
|
77
|
-
|
78
|
-
partial_mock_one.expects(:first).in_sequence(sequence)
|
79
|
-
partial_mock_two.expects(:second).in_sequence(sequence)
|
80
|
-
|
81
|
-
partial_mock_two.second
|
82
|
-
partial_mock_one.first
|
83
|
-
end
|
84
|
-
assert_failed(test_result)
|
85
|
-
end
|
86
|
-
|
87
|
-
def test_should_allow_invocations_in_sequence_even_if_expected_on_partial_mocks
|
88
|
-
test_result = run_as_test do
|
89
|
-
partial_mock_one = '1'
|
90
|
-
partial_mock_two = '2'
|
91
|
-
sequence = sequence('one')
|
92
|
-
|
93
|
-
partial_mock_one.expects(:first).in_sequence(sequence)
|
94
|
-
partial_mock_two.expects(:second).in_sequence(sequence)
|
95
|
-
|
96
|
-
partial_mock_one.first
|
97
|
-
partial_mock_two.second
|
98
|
-
end
|
99
|
-
assert_passed(test_result)
|
100
|
-
end
|
101
|
-
|
102
|
-
def test_should_allow_stub_expectations_to_be_skipped_in_sequence
|
103
|
-
test_result = run_as_test do
|
104
|
-
mock = mock()
|
105
|
-
sequence = sequence('one')
|
106
|
-
|
107
|
-
mock.expects(:first).in_sequence(sequence)
|
108
|
-
mock.stubs(:second).in_sequence(sequence)
|
109
|
-
mock.expects(:third).in_sequence(sequence)
|
110
|
-
|
111
|
-
mock.first
|
112
|
-
mock.third
|
113
|
-
end
|
114
|
-
assert_passed(test_result)
|
115
|
-
end
|
116
|
-
|
117
|
-
def test_should_regard_sequences_as_independent_of_each_other
|
118
|
-
test_result = run_as_test do
|
119
|
-
mock = mock()
|
120
|
-
sequence_one = sequence('one')
|
121
|
-
sequence_two = sequence('two')
|
122
|
-
|
123
|
-
mock.expects(:first).in_sequence(sequence_one)
|
124
|
-
mock.expects(:second).in_sequence(sequence_one)
|
125
|
-
|
126
|
-
mock.expects(:third).in_sequence(sequence_two)
|
127
|
-
mock.expects(:fourth).in_sequence(sequence_two)
|
128
|
-
|
129
|
-
mock.first
|
130
|
-
mock.third
|
131
|
-
mock.second
|
132
|
-
mock.fourth
|
133
|
-
end
|
134
|
-
assert_passed(test_result)
|
135
|
-
end
|
136
|
-
|
137
|
-
def test_should_include_sequence_in_failure_message
|
138
|
-
test_result = run_as_test do
|
139
|
-
mock = mock()
|
140
|
-
sequence = sequence('one')
|
141
|
-
|
142
|
-
mock.expects(:first).in_sequence(sequence)
|
143
|
-
mock.expects(:second).in_sequence(sequence)
|
144
|
-
|
145
|
-
mock.second
|
146
|
-
mock.first
|
147
|
-
end
|
148
|
-
assert_failed(test_result)
|
149
|
-
assert_match Regexp.new(%(in sequence "one")), test_result.failures.first.message
|
150
|
-
end
|
151
|
-
|
152
|
-
def test_should_allow_expectations_to_be_in_more_than_one_sequence
|
153
|
-
test_result = run_as_test do
|
154
|
-
mock = mock()
|
155
|
-
sequence_one = sequence('one')
|
156
|
-
sequence_two = sequence('two')
|
157
|
-
|
158
|
-
mock.expects(:first).in_sequence(sequence_one)
|
159
|
-
mock.expects(:second).in_sequence(sequence_two)
|
160
|
-
mock.expects(:third).in_sequence(sequence_one).in_sequence(sequence_two)
|
161
|
-
|
162
|
-
mock.first
|
163
|
-
mock.third
|
164
|
-
mock.second
|
165
|
-
end
|
166
|
-
assert_failed(test_result)
|
167
|
-
assert_match Regexp.new(%(in sequence "one")), test_result.failures.first.message
|
168
|
-
assert_match Regexp.new(%(in sequence "two")), test_result.failures.first.message
|
169
|
-
end
|
170
|
-
|
171
|
-
def test_should_have_shortcut_for_expectations_to_be_in_more_than_one_sequence
|
172
|
-
test_result = run_as_test do
|
173
|
-
mock = mock()
|
174
|
-
sequence_one = sequence('one')
|
175
|
-
sequence_two = sequence('two')
|
176
|
-
|
177
|
-
mock.expects(:first).in_sequence(sequence_one)
|
178
|
-
mock.expects(:second).in_sequence(sequence_two)
|
179
|
-
mock.expects(:third).in_sequence(sequence_one, sequence_two)
|
180
|
-
|
181
|
-
mock.first
|
182
|
-
mock.third
|
183
|
-
mock.second
|
184
|
-
end
|
185
|
-
assert_failed(test_result)
|
186
|
-
assert_match Regexp.new(%(in sequence "one")), test_result.failures.first.message
|
187
|
-
assert_match Regexp.new(%(in sequence "two")), test_result.failures.first.message
|
188
|
-
end
|
189
|
-
end
|
@@ -1,71 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
|
3
|
-
class StatesTest < Mocha::TestCase
|
4
|
-
include AcceptanceTest
|
5
|
-
|
6
|
-
def setup
|
7
|
-
setup_acceptance_test
|
8
|
-
end
|
9
|
-
|
10
|
-
def teardown
|
11
|
-
teardown_acceptance_test
|
12
|
-
end
|
13
|
-
|
14
|
-
def test_should_constrain_expectations_to_occur_within_a_given_state
|
15
|
-
test_result = run_as_test do
|
16
|
-
mock = mock()
|
17
|
-
readiness = states('readiness')
|
18
|
-
|
19
|
-
mock.stubs(:first).when(readiness.is('ready'))
|
20
|
-
mock.stubs(:second).then(readiness.is('ready'))
|
21
|
-
|
22
|
-
mock.first
|
23
|
-
end
|
24
|
-
assert_failed(test_result)
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_should_allow_expectations_to_occur_in_correct_state
|
28
|
-
test_result = run_as_test do
|
29
|
-
mock = mock()
|
30
|
-
readiness = states('readiness')
|
31
|
-
|
32
|
-
mock.stubs(:first).when(readiness.is('ready'))
|
33
|
-
mock.stubs(:second).then(readiness.is('ready'))
|
34
|
-
|
35
|
-
mock.second
|
36
|
-
mock.first
|
37
|
-
end
|
38
|
-
assert_passed(test_result)
|
39
|
-
end
|
40
|
-
|
41
|
-
def test_should_be_able_to_start_in_a_specific_state
|
42
|
-
test_result = run_as_test do
|
43
|
-
mock = mock()
|
44
|
-
readiness = states('readiness')
|
45
|
-
|
46
|
-
mock.stubs(:first).when(readiness.is('ready'))
|
47
|
-
|
48
|
-
readiness.starts_as('ready')
|
49
|
-
mock.first
|
50
|
-
end
|
51
|
-
assert_passed(test_result)
|
52
|
-
end
|
53
|
-
|
54
|
-
def test_should_switch_state_when_method_raises_an_exception
|
55
|
-
test_result = run_as_test do
|
56
|
-
mock = mock()
|
57
|
-
readiness = states('readiness')
|
58
|
-
|
59
|
-
mock.expects(:first).raises.then(readiness.is('ready'))
|
60
|
-
mock.expects(:second).when(readiness.is('ready'))
|
61
|
-
|
62
|
-
begin
|
63
|
-
mock.first
|
64
|
-
rescue StandardError
|
65
|
-
nil
|
66
|
-
end
|
67
|
-
mock.second
|
68
|
-
end
|
69
|
-
assert_passed(test_result)
|
70
|
-
end
|
71
|
-
end
|
@@ -1,64 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
|
3
|
-
class StubAnyInstanceMethodDefinedOnSuperclassTest < Mocha::TestCase
|
4
|
-
include AcceptanceTest
|
5
|
-
|
6
|
-
def setup
|
7
|
-
setup_acceptance_test
|
8
|
-
end
|
9
|
-
|
10
|
-
def teardown
|
11
|
-
teardown_acceptance_test
|
12
|
-
end
|
13
|
-
|
14
|
-
def test_should_stub_method_and_leave_it_unchanged_after_test
|
15
|
-
superklass = Class.new do
|
16
|
-
def my_superclass_method
|
17
|
-
:original_return_value
|
18
|
-
end
|
19
|
-
public :my_superclass_method
|
20
|
-
end
|
21
|
-
klass = Class.new(superklass)
|
22
|
-
instance = klass.new
|
23
|
-
assert_snapshot_unchanged(instance) do
|
24
|
-
test_result = run_as_test do
|
25
|
-
superklass.any_instance.stubs(:my_superclass_method).returns(:new_return_value)
|
26
|
-
assert_equal :new_return_value, instance.my_superclass_method
|
27
|
-
end
|
28
|
-
assert_passed(test_result)
|
29
|
-
end
|
30
|
-
assert_equal :original_return_value, instance.my_superclass_method
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_expect_method_on_any_instance_of_superclass_even_if_preceded_by_test_expecting_method_on_any_instance_of_subclass
|
34
|
-
superklass = Class.new do
|
35
|
-
def self.inspect
|
36
|
-
'superklass'
|
37
|
-
end
|
38
|
-
|
39
|
-
def my_instance_method; end
|
40
|
-
end
|
41
|
-
klass = Class.new(superklass) do
|
42
|
-
def self.inspect
|
43
|
-
'klass'
|
44
|
-
end
|
45
|
-
|
46
|
-
def my_instance_method; end
|
47
|
-
end
|
48
|
-
test_result = run_as_tests(
|
49
|
-
:test_1 => lambda {
|
50
|
-
klass.any_instance.expects(:my_instance_method)
|
51
|
-
klass.new.my_instance_method
|
52
|
-
},
|
53
|
-
:test_2 => lambda {
|
54
|
-
superklass.any_instance.expects(:my_instance_method)
|
55
|
-
}
|
56
|
-
)
|
57
|
-
assert_failed(test_result)
|
58
|
-
assert_equal [
|
59
|
-
'not all expectations were satisfied',
|
60
|
-
'unsatisfied expectations:',
|
61
|
-
'- expected exactly once, invoked never: #<AnyInstance:superklass>.my_instance_method(any_parameters)'
|
62
|
-
], test_result.failure_message_lines
|
63
|
-
end
|
64
|
-
end
|