mocha 0.5.6 → 0.9.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.
- data/README +4 -4
- data/RELEASE +45 -0
- data/Rakefile +55 -33
- data/lib/mocha.rb +1 -0
- data/lib/mocha/any_instance_method.rb +24 -4
- data/lib/mocha/backtrace_filter.rb +17 -0
- data/lib/mocha/cardinality.rb +92 -0
- data/lib/mocha/central.rb +1 -9
- data/lib/mocha/change_state_side_effect.rb +19 -0
- data/lib/mocha/class_method.rb +25 -5
- data/lib/mocha/configuration.rb +60 -0
- data/lib/mocha/exception_raiser.rb +1 -1
- data/lib/mocha/expectation.rb +109 -48
- data/lib/mocha/expectation_error.rb +6 -6
- data/lib/mocha/expectation_list.rb +10 -14
- data/lib/mocha/in_state_ordering_constraint.rb +19 -0
- data/lib/mocha/instance_method.rb +9 -0
- data/lib/mocha/logger.rb +15 -0
- data/lib/mocha/mock.rb +19 -14
- data/lib/mocha/mockery.rb +166 -0
- data/lib/mocha/module_method.rb +17 -0
- data/lib/mocha/names.rb +53 -0
- data/lib/mocha/object.rb +26 -9
- data/lib/mocha/parameter_matchers.rb +2 -1
- data/lib/mocha/parameter_matchers/all_of.rb +3 -3
- data/lib/mocha/parameter_matchers/any_of.rb +3 -3
- data/lib/mocha/parameter_matchers/anything.rb +1 -1
- data/lib/mocha/parameter_matchers/has_entries.rb +4 -1
- data/lib/mocha/parameter_matchers/has_entry.rb +3 -2
- data/lib/mocha/parameter_matchers/has_key.rb +1 -1
- data/lib/mocha/parameter_matchers/has_value.rb +1 -1
- data/lib/mocha/parameter_matchers/not.rb +2 -2
- data/lib/mocha/parameter_matchers/object.rb +1 -1
- data/lib/mocha/parameter_matchers/optionally.rb +22 -0
- data/lib/mocha/parameter_matchers/regexp_matches.rb +2 -2
- data/lib/mocha/parameter_matchers/responds_with.rb +43 -0
- data/lib/mocha/parameter_matchers/yaml_equivalent.rb +43 -0
- data/lib/mocha/single_return_value.rb +2 -9
- data/lib/mocha/standalone.rb +151 -17
- data/lib/mocha/state_machine.rb +91 -0
- data/lib/mocha/stubbing_error.rb +16 -0
- data/lib/mocha/test_case_adapter.rb +76 -22
- data/lib/stubba.rb +2 -1
- data/test/acceptance/acceptance_test_helper.rb +38 -0
- data/test/acceptance/bug_18914_test.rb +43 -0
- data/test/acceptance/{expected_invocation_count_acceptance_test.rb → expected_invocation_count_test.rb} +29 -20
- data/test/acceptance/failure_messages_test.rb +64 -0
- data/test/acceptance/{mocha_acceptance_test.rb → mocha_example_test.rb} +5 -5
- data/test/{integration/mocha_test_result_integration_test.rb → acceptance/mocha_test_result_test.rb} +19 -40
- data/test/acceptance/mock_test.rb +100 -0
- data/test/acceptance/{mock_with_initializer_block_acceptance_test.rb → mock_with_initializer_block_test.rb} +12 -5
- data/test/acceptance/{mocked_methods_dispatch_acceptance_test.rb → mocked_methods_dispatch_test.rb} +12 -5
- data/test/acceptance/{optional_parameters_acceptance_test.rb → optional_parameters_test.rb} +11 -4
- data/test/acceptance/{parameter_matcher_acceptance_test.rb → parameter_matcher_test.rb} +67 -5
- data/test/acceptance/{partial_mocks_acceptance_test.rb → partial_mocks_test.rb} +12 -5
- data/test/acceptance/return_value_test.rb +52 -0
- data/test/acceptance/{sequence_acceptance_test.rb → sequence_test.rb} +13 -6
- data/test/acceptance/{standalone_acceptance_test.rb → standalone_test.rb} +19 -11
- data/test/acceptance/states_test.rb +70 -0
- data/test/acceptance/stub_any_instance_method_test.rb +195 -0
- data/test/acceptance/stub_class_method_test.rb +203 -0
- data/test/acceptance/stub_everything_test.rb +56 -0
- data/test/acceptance/stub_instance_method_test.rb +165 -0
- data/test/acceptance/stub_module_method_test.rb +163 -0
- data/test/acceptance/stub_test.rb +52 -0
- data/test/acceptance/{stubba_acceptance_test.rb → stubba_example_test.rb} +1 -1
- data/test/{integration/stubba_test_result_integration_test.rb → acceptance/stubba_test_result_test.rb} +17 -36
- data/test/acceptance/stubbing_error_backtrace_test.rb +64 -0
- data/test/acceptance/stubbing_method_unnecessarily_test.rb +65 -0
- data/test/acceptance/stubbing_non_existent_any_instance_method_test.rb +130 -0
- data/test/acceptance/stubbing_non_existent_class_method_test.rb +155 -0
- data/test/acceptance/stubbing_non_existent_instance_method_test.rb +145 -0
- data/test/acceptance/stubbing_non_public_any_instance_method_test.rb +130 -0
- data/test/acceptance/stubbing_non_public_class_method_test.rb +161 -0
- data/test/acceptance/stubbing_non_public_instance_method_test.rb +141 -0
- data/test/acceptance/stubbing_on_non_mock_object_test.rb +64 -0
- data/test/execution_point.rb +3 -1
- data/test/simple_counter.rb +13 -0
- data/test/test_helper.rb +0 -1
- data/test/test_runner.rb +6 -4
- data/test/unit/any_instance_method_test.rb +1 -1
- data/test/unit/array_inspect_test.rb +1 -1
- data/test/unit/backtrace_filter_test.rb +19 -0
- data/test/unit/cardinality_test.rb +56 -0
- data/test/unit/central_test.rb +4 -63
- data/test/unit/change_state_side_effect_test.rb +41 -0
- data/test/unit/class_method_test.rb +38 -1
- data/test/unit/date_time_inspect_test.rb +1 -1
- data/test/unit/{expectation_raiser_test.rb → exception_raiser_test.rb} +14 -0
- data/test/unit/expectation_list_test.rb +4 -22
- data/test/unit/expectation_test.rb +70 -94
- data/test/unit/in_state_ordering_constraint_test.rb +43 -0
- data/test/unit/mock_test.rb +16 -37
- data/test/unit/mockery_test.rb +149 -0
- data/test/unit/{no_yield_test.rb → no_yields_test.rb} +0 -0
- data/test/unit/object_test.rb +6 -89
- data/test/unit/parameter_matchers/equals_test.rb +25 -0
- data/test/unit/parameter_matchers/has_entries_test.rb +22 -1
- data/test/unit/parameter_matchers/has_entry_test.rb +24 -2
- data/test/unit/parameter_matchers/has_key_test.rb +11 -0
- data/test/unit/parameter_matchers/has_value_test.rb +12 -0
- data/test/unit/parameter_matchers/regexp_matches_test.rb +1 -1
- data/test/unit/parameter_matchers/responds_with_test.rb +25 -0
- data/test/unit/parameter_matchers/stub_matcher.rb +4 -0
- data/test/unit/parameter_matchers/yaml_equivalent_test.rb +25 -0
- data/test/unit/single_return_value_test.rb +0 -19
- data/test/unit/state_machine_test.rb +98 -0
- metadata +108 -69
- data/lib/mocha/auto_verify.rb +0 -118
- data/lib/mocha/infinite_range.rb +0 -25
- data/lib/mocha/missing_expectation.rb +0 -17
- data/lib/mocha/setup_and_teardown.rb +0 -23
- data/lib/mocha/stub.rb +0 -18
- data/test/integration/stubba_integration_test.rb +0 -89
- data/test/unit/auto_verify_test.rb +0 -129
- data/test/unit/expectation_error_test.rb +0 -24
- data/test/unit/infinite_range_test.rb +0 -53
- data/test/unit/missing_expectation_test.rb +0 -42
- data/test/unit/setup_and_teardown_test.rb +0 -76
- data/test/unit/stub_test.rb +0 -24
data/lib/mocha/stub.rb
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
require 'mocha/expectation'
|
2
|
-
|
3
|
-
module Mocha # :nodoc:
|
4
|
-
|
5
|
-
class Stub < Expectation # :nodoc:
|
6
|
-
|
7
|
-
def initialize(mock, method_name, backtrace = nil)
|
8
|
-
super
|
9
|
-
@expected_count = Range.at_least(0)
|
10
|
-
end
|
11
|
-
|
12
|
-
def verify
|
13
|
-
true
|
14
|
-
end
|
15
|
-
|
16
|
-
end
|
17
|
-
|
18
|
-
end
|
@@ -1,89 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), "..", "test_helper")
|
2
|
-
|
3
|
-
require 'mocha/object'
|
4
|
-
require 'mocha/test_case_adapter'
|
5
|
-
require 'mocha/standalone'
|
6
|
-
|
7
|
-
class StubbaIntegrationTest < Test::Unit::TestCase
|
8
|
-
|
9
|
-
class DontMessWithMe
|
10
|
-
def self.my_class_method
|
11
|
-
:original_return_value
|
12
|
-
end
|
13
|
-
def my_instance_method
|
14
|
-
:original_return_value
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
def test_should_stub_class_method_within_test
|
19
|
-
test = build_test do
|
20
|
-
DontMessWithMe.expects(:my_class_method).returns(:new_return_value)
|
21
|
-
assert_equal :new_return_value, DontMessWithMe.my_class_method
|
22
|
-
end
|
23
|
-
|
24
|
-
test_result = Test::Unit::TestResult.new
|
25
|
-
test.run(test_result) {}
|
26
|
-
assert test_result.passed?
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_should_leave_stubbed_class_method_unchanged_after_test
|
30
|
-
test = build_test do
|
31
|
-
DontMessWithMe.expects(:my_class_method).returns(:new_return_value)
|
32
|
-
end
|
33
|
-
|
34
|
-
test.run(Test::Unit::TestResult.new) {}
|
35
|
-
assert_equal :original_return_value, DontMessWithMe.my_class_method
|
36
|
-
end
|
37
|
-
|
38
|
-
def test_should_reset_class_expectations_after_test
|
39
|
-
test = build_test do
|
40
|
-
DontMessWithMe.expects(:my_class_method)
|
41
|
-
end
|
42
|
-
|
43
|
-
test.run(Test::Unit::TestResult.new) {}
|
44
|
-
assert_equal 0, DontMessWithMe.mocha.expectations.length
|
45
|
-
end
|
46
|
-
|
47
|
-
def test_should_stub_instance_method_within_test
|
48
|
-
instance = DontMessWithMe.new
|
49
|
-
test = build_test do
|
50
|
-
instance.expects(:my_instance_method).returns(:new_return_value)
|
51
|
-
assert_equal :new_return_value, instance.my_instance_method
|
52
|
-
end
|
53
|
-
test_result = Test::Unit::TestResult.new
|
54
|
-
test.run(test_result) {}
|
55
|
-
assert test_result.passed?
|
56
|
-
end
|
57
|
-
|
58
|
-
def test_should_leave_stubbed_instance_method_unchanged_after_test
|
59
|
-
instance = DontMessWithMe.new
|
60
|
-
test = build_test do
|
61
|
-
instance.expects(:my_instance_method).returns(:new_return_value)
|
62
|
-
end
|
63
|
-
|
64
|
-
test.run(Test::Unit::TestResult.new) {}
|
65
|
-
assert_equal :original_return_value, instance.my_instance_method
|
66
|
-
end
|
67
|
-
|
68
|
-
def test_should_reset_instance_expectations_after_test
|
69
|
-
instance = DontMessWithMe.new
|
70
|
-
test = build_test do
|
71
|
-
instance.expects(:my_instance_method).returns(:new_return_value)
|
72
|
-
end
|
73
|
-
|
74
|
-
test.run(Test::Unit::TestResult.new) {}
|
75
|
-
assert_equal 0, instance.mocha.expectations.length
|
76
|
-
end
|
77
|
-
|
78
|
-
private
|
79
|
-
|
80
|
-
def build_test(&block)
|
81
|
-
test_class = Class.new(Test::Unit::TestCase) do
|
82
|
-
include Mocha::Standalone
|
83
|
-
include Mocha::TestCaseAdapter
|
84
|
-
define_method(:test_me, &block)
|
85
|
-
end
|
86
|
-
test_class.new(:test_me)
|
87
|
-
end
|
88
|
-
|
89
|
-
end
|
@@ -1,129 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), "..", "test_helper")
|
2
|
-
require 'mocha/auto_verify'
|
3
|
-
require 'method_definer'
|
4
|
-
|
5
|
-
class AutoVerifyTest < Test::Unit::TestCase
|
6
|
-
|
7
|
-
attr_reader :test_case
|
8
|
-
|
9
|
-
def setup
|
10
|
-
@test_case = Object.new
|
11
|
-
class << test_case
|
12
|
-
include Mocha::AutoVerify
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_should_build_mock
|
17
|
-
mock = test_case.mock
|
18
|
-
assert mock.is_a?(Mocha::Mock)
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_should_add_expectations_to_mock
|
22
|
-
mock = test_case.mock(:method_1 => 'result_1', :method_2 => 'result_2')
|
23
|
-
assert_equal 'result_1', mock.method_1
|
24
|
-
assert_equal 'result_2', mock.method_2
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_should_build_stub
|
28
|
-
stub = test_case.stub
|
29
|
-
assert stub.is_a?(Mocha::Mock)
|
30
|
-
end
|
31
|
-
|
32
|
-
def test_should_add_expectation_to_stub
|
33
|
-
stub = test_case.stub(:method_1 => 'result_1', :method_2 => 'result_2')
|
34
|
-
assert_equal 'result_1', stub.method_1
|
35
|
-
assert_equal 'result_2', stub.method_2
|
36
|
-
end
|
37
|
-
|
38
|
-
def test_should_build_stub_that_stubs_all_methods
|
39
|
-
stub = test_case.stub_everything
|
40
|
-
assert stub.everything_stubbed
|
41
|
-
end
|
42
|
-
|
43
|
-
def test_should_add_expectations_to_stub_that_stubs_all_methods
|
44
|
-
stub = test_case.stub_everything(:method_1 => 'result_1', :method_2 => 'result_2')
|
45
|
-
assert_equal 'result_1', stub.method_1
|
46
|
-
assert_equal 'result_2', stub.method_2
|
47
|
-
end
|
48
|
-
|
49
|
-
def test_should_always_new_mock
|
50
|
-
assert_not_equal test_case.mock, test_case.mock
|
51
|
-
end
|
52
|
-
|
53
|
-
def test_should_always_build_new_stub
|
54
|
-
assert_not_equal test_case.stub, test_case.stub
|
55
|
-
end
|
56
|
-
|
57
|
-
def test_should_always_build_new_stub_that_stubs_all_methods
|
58
|
-
assert_not_equal test_case.stub, test_case.stub
|
59
|
-
end
|
60
|
-
|
61
|
-
def test_should_store_each_new_mock
|
62
|
-
expected = Array.new(3) { test_case.mock }
|
63
|
-
assert_equal expected, test_case.mocks
|
64
|
-
end
|
65
|
-
|
66
|
-
def test_should_store_each_new_stub
|
67
|
-
expected = Array.new(3) { test_case.stub }
|
68
|
-
assert_equal expected, test_case.mocks
|
69
|
-
end
|
70
|
-
|
71
|
-
def test_should_store_each_new_stub_that_stubs_all_methods
|
72
|
-
expected = Array.new(3) { test_case.stub_everything }
|
73
|
-
assert_equal expected, test_case.mocks
|
74
|
-
end
|
75
|
-
|
76
|
-
def test_should_verify_each_mock
|
77
|
-
mocks = Array.new(3) do
|
78
|
-
mock = Object.new
|
79
|
-
mock.define_instance_accessor(:verify_called)
|
80
|
-
class << mock
|
81
|
-
def verify(&block)
|
82
|
-
self.verify_called = true
|
83
|
-
end
|
84
|
-
end
|
85
|
-
mock
|
86
|
-
end
|
87
|
-
test_case.replace_instance_method(:mocks) { mocks }
|
88
|
-
test_case.verify_mocks
|
89
|
-
assert mocks.all? { |mock| mock.verify_called }
|
90
|
-
end
|
91
|
-
|
92
|
-
def test_should_yield_to_block_for_each_assertion
|
93
|
-
mock_class = Class.new do
|
94
|
-
def verify(&block); yield; end
|
95
|
-
end
|
96
|
-
mock = mock_class.new
|
97
|
-
test_case.replace_instance_method(:mocks) { [mock] }
|
98
|
-
yielded = false
|
99
|
-
test_case.verify_mocks { yielded = true }
|
100
|
-
assert yielded
|
101
|
-
end
|
102
|
-
|
103
|
-
def test_should_reset_mocks_on_teardown
|
104
|
-
mock = Class.new { define_method(:verify) {} }.new
|
105
|
-
test_case.mocks << mock
|
106
|
-
test_case.teardown_mocks
|
107
|
-
assert test_case.mocks.empty?
|
108
|
-
end
|
109
|
-
|
110
|
-
def test_should_create_named_mock
|
111
|
-
mock = test_case.mock('named_mock')
|
112
|
-
assert_equal '#<Mock:named_mock>', mock.mocha_inspect
|
113
|
-
end
|
114
|
-
|
115
|
-
def test_should_create_named_stub
|
116
|
-
stub = test_case.stub('named_stub')
|
117
|
-
assert_equal '#<Mock:named_stub>', stub.mocha_inspect
|
118
|
-
end
|
119
|
-
|
120
|
-
def test_should_create_named_stub_that_stubs_all_methods
|
121
|
-
stub = test_case.stub_everything('named_stub')
|
122
|
-
assert_equal '#<Mock:named_stub>', stub.mocha_inspect
|
123
|
-
end
|
124
|
-
|
125
|
-
def test_should_build_sequence
|
126
|
-
assert_not_nil test_case.sequence('name')
|
127
|
-
end
|
128
|
-
|
129
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), "..", "test_helper")
|
2
|
-
require 'mocha/expectation_error'
|
3
|
-
|
4
|
-
class ExpectationErrorTest < Test::Unit::TestCase
|
5
|
-
|
6
|
-
include Mocha
|
7
|
-
|
8
|
-
def test_should_exclude_mocha_locations_from_backtrace
|
9
|
-
mocha_lib = "/username/workspace/mocha_wibble/lib/"
|
10
|
-
backtrace = [ mocha_lib + 'exclude/me/1', mocha_lib + 'exclude/me/2', '/keep/me', mocha_lib + 'exclude/me/3']
|
11
|
-
expectation_error = ExpectationError.new(nil, backtrace, mocha_lib)
|
12
|
-
assert_equal ['/keep/me'], expectation_error.backtrace
|
13
|
-
end
|
14
|
-
|
15
|
-
def test_should_determine_path_for_mocha_lib_directory
|
16
|
-
assert_match Regexp.new("/lib/$"), ExpectationError::LIB_DIRECTORY
|
17
|
-
end
|
18
|
-
|
19
|
-
def test_should_set_error_message
|
20
|
-
expectation_error = ExpectationError.new('message')
|
21
|
-
assert_equal 'message', expectation_error.message
|
22
|
-
end
|
23
|
-
|
24
|
-
end
|
@@ -1,53 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), "..", "test_helper")
|
2
|
-
require 'mocha/infinite_range'
|
3
|
-
require 'date'
|
4
|
-
|
5
|
-
class InfiniteRangeTest < Test::Unit::TestCase
|
6
|
-
|
7
|
-
def test_should_include_values_at_or_above_minimum
|
8
|
-
range = Range.at_least(10)
|
9
|
-
assert(range === 10)
|
10
|
-
assert(range === 11)
|
11
|
-
assert(range === 1000000)
|
12
|
-
end
|
13
|
-
|
14
|
-
def test_should_not_include_values_below_minimum
|
15
|
-
range = Range.at_least(10)
|
16
|
-
assert_false(range === 0)
|
17
|
-
assert_false(range === 9)
|
18
|
-
assert_false(range === -11)
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_should_be_human_readable_description_for_at_least
|
22
|
-
assert_equal "at least 10", Range.at_least(10).mocha_inspect
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_should_include_values_at_or_below_maximum
|
26
|
-
range = Range.at_most(10)
|
27
|
-
assert(range === 10)
|
28
|
-
assert(range === 0)
|
29
|
-
assert(range === -1000000)
|
30
|
-
end
|
31
|
-
|
32
|
-
def test_should_not_include_values_above_maximum
|
33
|
-
range = Range.at_most(10)
|
34
|
-
assert_false(range === 11)
|
35
|
-
assert_false(range === 1000000)
|
36
|
-
end
|
37
|
-
|
38
|
-
def test_should_be_human_readable_description_for_at_most
|
39
|
-
assert_equal "at most 10", Range.at_most(10).mocha_inspect
|
40
|
-
end
|
41
|
-
|
42
|
-
def test_should_be_same_as_standard_to_string
|
43
|
-
assert_equal((1..10).to_s, (1..10).mocha_inspect)
|
44
|
-
assert_equal((1...10).to_s, (1...10).mocha_inspect)
|
45
|
-
date_range = Range.new(Date.parse('2006-01-01'), Date.parse('2007-01-01'))
|
46
|
-
assert_equal date_range.to_s, date_range.mocha_inspect
|
47
|
-
end
|
48
|
-
|
49
|
-
def assert_false(condition)
|
50
|
-
assert(!condition)
|
51
|
-
end
|
52
|
-
|
53
|
-
end
|
@@ -1,42 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), "..", "test_helper")
|
2
|
-
|
3
|
-
require 'mocha/missing_expectation'
|
4
|
-
require 'mocha/mock'
|
5
|
-
|
6
|
-
class MissingExpectationTest < Test::Unit::TestCase
|
7
|
-
|
8
|
-
include Mocha
|
9
|
-
|
10
|
-
def test_should_report_similar_expectations
|
11
|
-
mock = Mock.new
|
12
|
-
expectation_1 = mock.expects(:method_one).with(1)
|
13
|
-
expectation_2 = mock.expects(:method_one).with(1, 1)
|
14
|
-
expectation_3 = mock.expects(:method_two).with(2)
|
15
|
-
|
16
|
-
missing_expectation = MissingExpectation.new(mock, :method_one)
|
17
|
-
exception = assert_raise(ExpectationError) { missing_expectation.verify }
|
18
|
-
|
19
|
-
expected_message = [
|
20
|
-
"#{missing_expectation.error_message(0, 1)}",
|
21
|
-
"Similar expectations:",
|
22
|
-
"#{expectation_1.method_signature}",
|
23
|
-
"#{expectation_2.method_signature}"
|
24
|
-
].join("\n")
|
25
|
-
|
26
|
-
assert_equal expected_message, exception.message
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_should_not_report_similar_expectations_if_there_are_none
|
30
|
-
mock = Mock.new
|
31
|
-
mock.expects(:method_two).with(2)
|
32
|
-
mock.expects(:method_two).with(2, 2)
|
33
|
-
|
34
|
-
missing_expectation = MissingExpectation.new(mock, :method_one)
|
35
|
-
exception = assert_raise(ExpectationError) { missing_expectation.verify }
|
36
|
-
|
37
|
-
expected_message = "#{missing_expectation.error_message(0, 1)}"
|
38
|
-
|
39
|
-
assert_equal expected_message, exception.message
|
40
|
-
end
|
41
|
-
|
42
|
-
end
|
@@ -1,76 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), "..", "test_helper")
|
2
|
-
require 'mocha/mock'
|
3
|
-
|
4
|
-
require 'mocha/setup_and_teardown'
|
5
|
-
|
6
|
-
class SetupAndTeardownTest < Test::Unit::TestCase
|
7
|
-
|
8
|
-
include Mocha
|
9
|
-
|
10
|
-
def test_should_instantiate_new_stubba
|
11
|
-
test_case = stubbed_test_case_class.new
|
12
|
-
test_case.setup_stubs
|
13
|
-
|
14
|
-
assert $stubba
|
15
|
-
assert $stubba.is_a?(Mocha::Central)
|
16
|
-
end
|
17
|
-
|
18
|
-
def test_should_verify_all_expectations
|
19
|
-
test_case = stubbed_test_case_class.new
|
20
|
-
stubba = Mock.new
|
21
|
-
stubba.expects(:verify_all)
|
22
|
-
$stubba = stubba
|
23
|
-
|
24
|
-
test_case.verify_stubs
|
25
|
-
|
26
|
-
stubba.verify
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_should_yield_to_block_for_each_assertion
|
30
|
-
test_case = stubbed_test_case_class.new
|
31
|
-
$stubba = Mock.new
|
32
|
-
$stubba.stubs(:verify_all).yields
|
33
|
-
yielded = false
|
34
|
-
|
35
|
-
test_case.verify_stubs { yielded = true }
|
36
|
-
|
37
|
-
assert_equal true, yielded
|
38
|
-
end
|
39
|
-
|
40
|
-
def test_should_unstub_all_stubbed_methods
|
41
|
-
test_case = stubbed_test_case_class.new
|
42
|
-
stubba = Mock.new
|
43
|
-
stubba.expects(:unstub_all)
|
44
|
-
$stubba = stubba
|
45
|
-
|
46
|
-
test_case.teardown_stubs
|
47
|
-
|
48
|
-
stubba.verify
|
49
|
-
end
|
50
|
-
|
51
|
-
def test_should_set_stubba_to_nil
|
52
|
-
test_case = stubbed_test_case_class.new
|
53
|
-
$stubba = Mock.new
|
54
|
-
$stubba.stubs(:unstub_all)
|
55
|
-
|
56
|
-
test_case.teardown_stubs
|
57
|
-
|
58
|
-
assert_nil $stubba
|
59
|
-
end
|
60
|
-
|
61
|
-
def test_should_not_raise_exception_if_no_stubba_central_available
|
62
|
-
test_case = stubbed_test_case_class.new
|
63
|
-
$stubba = nil
|
64
|
-
assert_nothing_raised { test_case.teardown_stubs }
|
65
|
-
end
|
66
|
-
|
67
|
-
private
|
68
|
-
|
69
|
-
def stubbed_test_case_class
|
70
|
-
Class.new do
|
71
|
-
include Mocha::SetupAndTeardown
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
end
|
76
|
-
|
data/test/unit/stub_test.rb
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), "..", "test_helper")
|
2
|
-
require 'mocha/stub'
|
3
|
-
|
4
|
-
class StubTest < Test::Unit::TestCase
|
5
|
-
|
6
|
-
include Mocha
|
7
|
-
|
8
|
-
def test_should_always_verify_successfully
|
9
|
-
stub = Stub.new(nil, :expected_method)
|
10
|
-
assert stub.verify
|
11
|
-
stub.invoke
|
12
|
-
assert stub.verify
|
13
|
-
end
|
14
|
-
|
15
|
-
def test_should_match_successfully_for_any_number_of_invocations
|
16
|
-
stub = Stub.new(nil, :expected_method)
|
17
|
-
assert stub.match?(:expected_method)
|
18
|
-
stub.invoke
|
19
|
-
assert stub.match?(:expected_method)
|
20
|
-
stub.invoke
|
21
|
-
assert stub.match?(:expected_method)
|
22
|
-
end
|
23
|
-
|
24
|
-
end
|