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,77 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
|
3
|
-
class FailureMessagesTest < Mocha::TestCase
|
4
|
-
OBJECT_ADDRESS_PATTERN = '0x[0-9A-Fa-f]{1,12}'.freeze
|
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
|
-
class Foo; end
|
17
|
-
|
18
|
-
def test_should_display_class_name_when_expectation_was_on_class
|
19
|
-
test_result = run_as_test do
|
20
|
-
Foo.expects(:bar)
|
21
|
-
end
|
22
|
-
assert_match Regexp.new('FailureMessagesTest::Foo'), test_result.failures[0].message
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_should_display_class_name_and_address_when_expectation_was_on_instance
|
26
|
-
test_result = run_as_test do
|
27
|
-
Foo.new.expects(:bar)
|
28
|
-
end
|
29
|
-
assert_match Regexp.new("#<FailureMessagesTest::Foo:#{OBJECT_ADDRESS_PATTERN}>"), test_result.failures[0].message
|
30
|
-
end
|
31
|
-
|
32
|
-
def test_should_display_class_name_and_any_instance_prefix_when_expectation_was_on_any_instance
|
33
|
-
test_result = run_as_test do
|
34
|
-
Foo.any_instance.expects(:bar)
|
35
|
-
end
|
36
|
-
assert_match Regexp.new('#<AnyInstance:FailureMessagesTest::Foo>'), test_result.failures[0].message
|
37
|
-
end
|
38
|
-
|
39
|
-
def test_should_display_mock_name_when_expectation_was_on_named_mock
|
40
|
-
test_result = run_as_test do
|
41
|
-
foo = mock('foo')
|
42
|
-
foo.expects(:bar)
|
43
|
-
end
|
44
|
-
assert_match Regexp.new('#<Mock:foo>'), test_result.failures[0].message
|
45
|
-
end
|
46
|
-
|
47
|
-
def test_should_display_mock_address_when_expectation_was_on_unnamed_mock
|
48
|
-
test_result = run_as_test do
|
49
|
-
foo = mock
|
50
|
-
foo.expects(:bar)
|
51
|
-
end
|
52
|
-
assert_match Regexp.new("#<Mock:#{OBJECT_ADDRESS_PATTERN}>"), test_result.failures[0].message
|
53
|
-
end
|
54
|
-
|
55
|
-
def test_should_display_string_when_expectation_was_on_string
|
56
|
-
test_result = run_as_test do
|
57
|
-
'Foo'.expects(:bar)
|
58
|
-
end
|
59
|
-
assert_match Regexp.new(%("Foo")), test_result.failures[0].message
|
60
|
-
end
|
61
|
-
|
62
|
-
def test_should_display_that_block_was_expected
|
63
|
-
test_result = run_as_test do
|
64
|
-
foo = mock
|
65
|
-
foo.expects(:bar).with_block_given
|
66
|
-
end
|
67
|
-
assert_match Regexp.new(' with block given$'), test_result.failures[0].message
|
68
|
-
end
|
69
|
-
|
70
|
-
def test_should_display_that_block_was_not_expected
|
71
|
-
test_result = run_as_test do
|
72
|
-
foo = mock
|
73
|
-
foo.expects(:bar).with_no_block_given
|
74
|
-
end
|
75
|
-
assert_match Regexp.new(' with no block given$'), test_result.failures[0].message
|
76
|
-
end
|
77
|
-
end
|
@@ -1,50 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
|
3
|
-
class Issue272Test < 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
|
-
module Mod
|
15
|
-
private
|
16
|
-
|
17
|
-
def foo
|
18
|
-
'original-foo'
|
19
|
-
end
|
20
|
-
|
21
|
-
def bar
|
22
|
-
'original-bar'
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
class Klass
|
27
|
-
extend Mod
|
28
|
-
|
29
|
-
class << self
|
30
|
-
public :foo
|
31
|
-
public :bar
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
def test_private_methods_in_module_used_to_extend_class_and_made_public
|
36
|
-
test_result = run_as_test do
|
37
|
-
Klass.stubs(:foo).returns('stubbed-foo')
|
38
|
-
# hangs in next line executing:
|
39
|
-
# `@original_method = stubbee._method(method)`
|
40
|
-
# in Mocha::StubbedMethod#hide_original_method
|
41
|
-
# but only in Ruby v2.3, not v2.2
|
42
|
-
Klass.stubs(:bar).returns('stubbed-bar')
|
43
|
-
assert_equal 'stubbed-foo', Klass.foo
|
44
|
-
assert_equal 'stubbed-bar', Klass.bar
|
45
|
-
end
|
46
|
-
assert_passed(test_result)
|
47
|
-
assert_equal 'original-foo', Klass.foo
|
48
|
-
assert_equal 'original-bar', Klass.bar
|
49
|
-
end
|
50
|
-
end
|
@@ -1,31 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
|
3
|
-
class Issue457Test < 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_only_inspect_objects_when_necessary
|
15
|
-
test_result = run_as_test do
|
16
|
-
klass = Class.new do
|
17
|
-
def message
|
18
|
-
raise 'Not inspectable in this state!'
|
19
|
-
end
|
20
|
-
|
21
|
-
def inspect
|
22
|
-
message
|
23
|
-
end
|
24
|
-
end
|
25
|
-
instance = klass.new
|
26
|
-
instance.stubs(:message).returns('message')
|
27
|
-
assert_equal 'message', instance.inspect
|
28
|
-
end
|
29
|
-
assert_passed(test_result)
|
30
|
-
end
|
31
|
-
end
|
@@ -1,64 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
|
3
|
-
class Issue65Test < 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_expectations_on_class_methods_on_same_class_should_be_verified_in_consecutive_tests
|
15
|
-
klass = Class.new do
|
16
|
-
def self.foo; end
|
17
|
-
|
18
|
-
def self.bar; end
|
19
|
-
end
|
20
|
-
test1 = run_as_test do
|
21
|
-
klass.expects(:foo)
|
22
|
-
klass.foo
|
23
|
-
end
|
24
|
-
assert_passed(test1)
|
25
|
-
test2 = run_as_test do
|
26
|
-
klass.expects(:bar)
|
27
|
-
end
|
28
|
-
assert_failed(test2)
|
29
|
-
end
|
30
|
-
|
31
|
-
def test_expectations_on_any_instance_methods_on_same_class_should_be_verified_in_consecutive_tests
|
32
|
-
klass = Class.new do
|
33
|
-
def foo; end
|
34
|
-
|
35
|
-
def bar; end
|
36
|
-
end
|
37
|
-
test1 = run_as_test do
|
38
|
-
klass.any_instance.expects(:foo)
|
39
|
-
klass.new.foo
|
40
|
-
end
|
41
|
-
assert_passed(test1)
|
42
|
-
test2 = run_as_test do
|
43
|
-
klass.any_instance.expects(:bar)
|
44
|
-
end
|
45
|
-
assert_failed(test2)
|
46
|
-
end
|
47
|
-
|
48
|
-
def test_expectations_on_instance_methods_on_same_object_should_be_verified_in_consecutive_tests
|
49
|
-
instance = Class.new do
|
50
|
-
def foo; end
|
51
|
-
|
52
|
-
def bar; end
|
53
|
-
end.new
|
54
|
-
test1 = run_as_test do
|
55
|
-
instance.expects(:foo)
|
56
|
-
instance.foo
|
57
|
-
end
|
58
|
-
assert_passed(test1)
|
59
|
-
test2 = run_as_test do
|
60
|
-
instance.expects(:bar)
|
61
|
-
end
|
62
|
-
assert_failed(test2)
|
63
|
-
end
|
64
|
-
end
|
@@ -1,53 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
|
3
|
-
class Issue70Test < 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_expectations_instance_method
|
15
|
-
instance = Class.new do
|
16
|
-
def expectations
|
17
|
-
:original_return_value
|
18
|
-
end
|
19
|
-
end.new
|
20
|
-
test_result = run_as_test do
|
21
|
-
instance.stubs(:expectations).returns(:stubbed_return_value)
|
22
|
-
assert_equal :stubbed_return_value, instance.expectations
|
23
|
-
end
|
24
|
-
assert_passed(test_result)
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_should_stub_expectations_class_method
|
28
|
-
klass = Class.new do
|
29
|
-
def self.expectations
|
30
|
-
:original_return_value
|
31
|
-
end
|
32
|
-
end
|
33
|
-
test_result = run_as_test do
|
34
|
-
klass.stubs(:expectations).returns(:stubbed_return_value)
|
35
|
-
assert_equal :stubbed_return_value, klass.expectations
|
36
|
-
end
|
37
|
-
assert_passed(test_result)
|
38
|
-
end
|
39
|
-
|
40
|
-
def test_should_stub_expectations_any_instance_method
|
41
|
-
klass = Class.new do
|
42
|
-
def expectations
|
43
|
-
:original_return_value
|
44
|
-
end
|
45
|
-
end
|
46
|
-
instance = klass.new
|
47
|
-
test_result = run_as_test do
|
48
|
-
klass.any_instance.stubs(:expectations).returns(:stubbed_return_value)
|
49
|
-
assert_equal :stubbed_return_value, instance.expectations
|
50
|
-
end
|
51
|
-
assert_passed(test_result)
|
52
|
-
end
|
53
|
-
end
|
@@ -1,106 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
|
3
|
-
class MochaExampleTest < 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
|
-
class Rover
|
15
|
-
def initialize(left_track, right_track, steps_per_metre, steps_per_degree)
|
16
|
-
@left_track = left_track
|
17
|
-
@right_track = right_track
|
18
|
-
@steps_per_metre = steps_per_metre
|
19
|
-
@steps_per_degree = steps_per_degree
|
20
|
-
end
|
21
|
-
|
22
|
-
def forward(metres)
|
23
|
-
@left_track.step(metres * @steps_per_metre)
|
24
|
-
@right_track.step(metres * @steps_per_metre)
|
25
|
-
wait
|
26
|
-
end
|
27
|
-
|
28
|
-
def backward(metres)
|
29
|
-
forward(-metres)
|
30
|
-
end
|
31
|
-
|
32
|
-
def left(degrees)
|
33
|
-
@left_track.step(-degrees * @steps_per_degree)
|
34
|
-
@right_track.step(+degrees * @steps_per_degree)
|
35
|
-
wait
|
36
|
-
end
|
37
|
-
|
38
|
-
def right(degrees)
|
39
|
-
left(-degrees)
|
40
|
-
end
|
41
|
-
|
42
|
-
def wait
|
43
|
-
while @left_track.moving? || @right_track.moving?; end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
def test_should_step_both_tracks_forward_ten_steps
|
48
|
-
left_track = mock('left_track')
|
49
|
-
right_track = mock('right_track')
|
50
|
-
steps_per_metre = 5
|
51
|
-
rover = Rover.new(left_track, right_track, steps_per_metre, nil)
|
52
|
-
|
53
|
-
left_track.expects(:step).with(10)
|
54
|
-
right_track.expects(:step).with(10)
|
55
|
-
|
56
|
-
left_track.stubs(:moving?).returns(false)
|
57
|
-
right_track.stubs(:moving?).returns(false)
|
58
|
-
|
59
|
-
rover.forward(2)
|
60
|
-
end
|
61
|
-
|
62
|
-
def test_should_step_both_tracks_backward_ten_steps
|
63
|
-
left_track = mock('left_track')
|
64
|
-
right_track = mock('right_track')
|
65
|
-
steps_per_metre = 5
|
66
|
-
rover = Rover.new(left_track, right_track, steps_per_metre, nil)
|
67
|
-
|
68
|
-
left_track.expects(:step).with(-10)
|
69
|
-
right_track.expects(:step).with(-10)
|
70
|
-
|
71
|
-
left_track.stubs(:moving?).returns(false)
|
72
|
-
right_track.stubs(:moving?).returns(false)
|
73
|
-
|
74
|
-
rover.backward(2)
|
75
|
-
end
|
76
|
-
|
77
|
-
def test_should_step_left_track_forwards_five_steps_and_right_track_backwards_five_steps
|
78
|
-
left_track = mock('left_track')
|
79
|
-
right_track = mock('right_track')
|
80
|
-
steps_per_degree = 5.0 / 90.0
|
81
|
-
rover = Rover.new(left_track, right_track, nil, steps_per_degree)
|
82
|
-
|
83
|
-
left_track.expects(:step).with(+5)
|
84
|
-
right_track.expects(:step).with(-5)
|
85
|
-
|
86
|
-
left_track.stubs(:moving?).returns(false)
|
87
|
-
right_track.stubs(:moving?).returns(false)
|
88
|
-
|
89
|
-
rover.right(90)
|
90
|
-
end
|
91
|
-
|
92
|
-
def test_should_step_left_track_backwards_five_steps_and_right_track_forwards_five_steps
|
93
|
-
left_track = mock('left_track')
|
94
|
-
right_track = mock('right_track')
|
95
|
-
steps_per_degree = 5.0 / 90.0
|
96
|
-
rover = Rover.new(left_track, right_track, nil, steps_per_degree)
|
97
|
-
|
98
|
-
left_track.expects(:step).with(-5)
|
99
|
-
right_track.expects(:step).with(+5)
|
100
|
-
|
101
|
-
left_track.stubs(:moving?).returns(false)
|
102
|
-
right_track.stubs(:moving?).returns(false)
|
103
|
-
|
104
|
-
rover.left(90)
|
105
|
-
end
|
106
|
-
end
|
@@ -1,83 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
require 'execution_point'
|
3
|
-
|
4
|
-
class MochaTestResultTest < Mocha::TestCase
|
5
|
-
include AcceptanceTest
|
6
|
-
|
7
|
-
def setup
|
8
|
-
setup_acceptance_test
|
9
|
-
end
|
10
|
-
|
11
|
-
def teardown
|
12
|
-
teardown_acceptance_test
|
13
|
-
end
|
14
|
-
|
15
|
-
def test_should_include_expectation_verification_in_assertion_count
|
16
|
-
test_result = run_as_test do
|
17
|
-
object = mock
|
18
|
-
object.expects(:message)
|
19
|
-
object.message
|
20
|
-
end
|
21
|
-
assert_equal 1, test_result.assertion_count
|
22
|
-
end
|
23
|
-
|
24
|
-
def test_should_include_assertions_in_assertion_count
|
25
|
-
test_result = run_as_test do
|
26
|
-
assert true
|
27
|
-
end
|
28
|
-
assert_equal 1, test_result.assertion_count
|
29
|
-
end
|
30
|
-
|
31
|
-
def test_should_not_include_stubbing_expectation_verification_in_assertion_count
|
32
|
-
test_result = run_as_test do
|
33
|
-
object = mock
|
34
|
-
object.stubs(:message)
|
35
|
-
object.message
|
36
|
-
end
|
37
|
-
assert_equal 0, test_result.assertion_count
|
38
|
-
end
|
39
|
-
|
40
|
-
def test_should_include_expectation_verification_failure_in_failure_count
|
41
|
-
test_result = run_as_test do
|
42
|
-
object = mock
|
43
|
-
object.expects(:message)
|
44
|
-
end
|
45
|
-
assert_equal 1, test_result.failure_count
|
46
|
-
end
|
47
|
-
|
48
|
-
def test_should_include_unexpected_verification_failure_in_failure_count
|
49
|
-
test_result = run_as_test do
|
50
|
-
object = mock
|
51
|
-
object.message
|
52
|
-
end
|
53
|
-
assert_equal 1, test_result.failure_count
|
54
|
-
end
|
55
|
-
|
56
|
-
def test_should_include_assertion_failure_in_failure_count
|
57
|
-
test_result = run_as_test do
|
58
|
-
flunk
|
59
|
-
end
|
60
|
-
assert_equal 1, test_result.failure_count
|
61
|
-
end
|
62
|
-
|
63
|
-
# rubocop:disable Style/Semicolon
|
64
|
-
def test_should_display_backtrace_indicating_line_number_where_unexpected_method_was_called
|
65
|
-
execution_point = nil
|
66
|
-
test_result = run_as_test do
|
67
|
-
object = mock
|
68
|
-
execution_point = ExecutionPoint.current; object.message
|
69
|
-
end
|
70
|
-
assert_equal 1, test_result.failure_count
|
71
|
-
assert_equal execution_point, ExecutionPoint.new(test_result.failures[0].location)
|
72
|
-
end
|
73
|
-
|
74
|
-
def test_should_display_backtrace_indicating_line_number_where_failing_assertion_was_called
|
75
|
-
execution_point = nil
|
76
|
-
test_result = run_as_test do
|
77
|
-
execution_point = ExecutionPoint.current; flunk
|
78
|
-
end
|
79
|
-
assert_equal 1, test_result.failure_count
|
80
|
-
assert_equal execution_point, ExecutionPoint.new(test_result.failures[0].location)
|
81
|
-
end
|
82
|
-
# rubocop:enable Style/Semicolon
|
83
|
-
end
|