mocha-macruby 0.9.8.20100129120100
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/COPYING +3 -0
- data/MIT-LICENSE +7 -0
- data/README +39 -0
- data/RELEASE +294 -0
- data/Rakefile +214 -0
- data/examples/misc.rb +43 -0
- data/examples/mocha.rb +25 -0
- data/examples/stubba.rb +64 -0
- data/lib/mocha.rb +3 -0
- data/lib/mocha/any_instance_method.rb +59 -0
- data/lib/mocha/api.rb +173 -0
- data/lib/mocha/argument_iterator.rb +21 -0
- data/lib/mocha/backtrace_filter.rb +17 -0
- data/lib/mocha/cardinality.rb +95 -0
- data/lib/mocha/central.rb +27 -0
- data/lib/mocha/change_state_side_effect.rb +19 -0
- data/lib/mocha/class_method.rb +117 -0
- data/lib/mocha/configuration.rb +79 -0
- data/lib/mocha/deprecation.rb +22 -0
- data/lib/mocha/exception_raiser.rb +17 -0
- data/lib/mocha/expectation.rb +476 -0
- data/lib/mocha/expectation_error.rb +15 -0
- data/lib/mocha/expectation_list.rb +50 -0
- data/lib/mocha/in_state_ordering_constraint.rb +19 -0
- data/lib/mocha/inspect.rb +67 -0
- data/lib/mocha/instance_method.rb +16 -0
- data/lib/mocha/integration.rb +38 -0
- data/lib/mocha/integration/mini_test.rb +21 -0
- data/lib/mocha/integration/mini_test/assertion_counter.rb +23 -0
- data/lib/mocha/integration/mini_test/version_131_and_above.rb +50 -0
- data/lib/mocha/integration/test_unit.rb +40 -0
- data/lib/mocha/integration/test_unit/assertion_counter.rb +23 -0
- data/lib/mocha/integration/test_unit/gem_version_200.rb +49 -0
- data/lib/mocha/integration/test_unit/gem_version_201_and_above.rb +49 -0
- data/lib/mocha/integration/test_unit/ruby_version_185_and_below.rb +48 -0
- data/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb +50 -0
- data/lib/mocha/is_a.rb +9 -0
- data/lib/mocha/logger.rb +15 -0
- data/lib/mocha/metaclass.rb +13 -0
- data/lib/mocha/method_matcher.rb +21 -0
- data/lib/mocha/mock.rb +200 -0
- data/lib/mocha/mockery.rb +181 -0
- data/lib/mocha/module_method.rb +16 -0
- data/lib/mocha/multiple_yields.rb +20 -0
- data/lib/mocha/names.rb +53 -0
- data/lib/mocha/no_yields.rb +11 -0
- data/lib/mocha/object.rb +187 -0
- data/lib/mocha/parameter_matchers.rb +27 -0
- data/lib/mocha/parameter_matchers/all_of.rb +42 -0
- data/lib/mocha/parameter_matchers/any_of.rb +47 -0
- data/lib/mocha/parameter_matchers/any_parameters.rb +40 -0
- data/lib/mocha/parameter_matchers/anything.rb +33 -0
- data/lib/mocha/parameter_matchers/base.rb +15 -0
- data/lib/mocha/parameter_matchers/equals.rb +42 -0
- data/lib/mocha/parameter_matchers/has_entries.rb +45 -0
- data/lib/mocha/parameter_matchers/has_entry.rb +57 -0
- data/lib/mocha/parameter_matchers/has_key.rb +43 -0
- data/lib/mocha/parameter_matchers/has_value.rb +43 -0
- data/lib/mocha/parameter_matchers/includes.rb +41 -0
- data/lib/mocha/parameter_matchers/instance_of.rb +42 -0
- data/lib/mocha/parameter_matchers/is_a.rb +42 -0
- data/lib/mocha/parameter_matchers/kind_of.rb +42 -0
- data/lib/mocha/parameter_matchers/not.rb +42 -0
- data/lib/mocha/parameter_matchers/object.rb +15 -0
- data/lib/mocha/parameter_matchers/optionally.rb +55 -0
- data/lib/mocha/parameter_matchers/regexp_matches.rb +44 -0
- data/lib/mocha/parameter_matchers/responds_with.rb +43 -0
- data/lib/mocha/parameter_matchers/yaml_equivalent.rb +43 -0
- data/lib/mocha/parameters_matcher.rb +37 -0
- data/lib/mocha/pretty_parameters.rb +28 -0
- data/lib/mocha/return_values.rb +31 -0
- data/lib/mocha/sequence.rb +42 -0
- data/lib/mocha/single_return_value.rb +17 -0
- data/lib/mocha/single_yield.rb +18 -0
- data/lib/mocha/standalone.rb +1 -0
- data/lib/mocha/state_machine.rb +91 -0
- data/lib/mocha/stubbing_error.rb +16 -0
- data/lib/mocha/unexpected_invocation.rb +18 -0
- data/lib/mocha/yield_parameters.rb +31 -0
- data/lib/mocha_standalone.rb +2 -0
- data/lib/stubba.rb +4 -0
- data/test/acceptance/acceptance_test_helper.rb +38 -0
- data/test/acceptance/api_test.rb +139 -0
- data/test/acceptance/bug_18914_test.rb +43 -0
- data/test/acceptance/bug_21465_test.rb +34 -0
- data/test/acceptance/bug_21563_test.rb +25 -0
- data/test/acceptance/expected_invocation_count_test.rb +196 -0
- data/test/acceptance/failure_messages_test.rb +64 -0
- data/test/acceptance/minitest_test.rb +153 -0
- data/test/acceptance/mocha_example_test.rb +98 -0
- data/test/acceptance/mocha_test_result_test.rb +84 -0
- data/test/acceptance/mock_test.rb +100 -0
- data/test/acceptance/mock_with_initializer_block_test.rb +51 -0
- data/test/acceptance/mocked_methods_dispatch_test.rb +78 -0
- data/test/acceptance/optional_parameters_test.rb +70 -0
- data/test/acceptance/parameter_matcher_test.rb +209 -0
- data/test/acceptance/partial_mocks_test.rb +47 -0
- data/test/acceptance/return_value_test.rb +52 -0
- data/test/acceptance/sequence_test.rb +186 -0
- 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 +203 -0
- data/test/acceptance/stub_module_method_test.rb +163 -0
- data/test/acceptance/stub_test.rb +52 -0
- data/test/acceptance/stubba_example_test.rb +102 -0
- data/test/acceptance/stubba_test.rb +15 -0
- data/test/acceptance/stubba_test_result_test.rb +66 -0
- 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 +157 -0
- data/test/acceptance/stubbing_non_existent_instance_method_test.rb +147 -0
- data/test/acceptance/stubbing_non_public_any_instance_method_test.rb +130 -0
- data/test/acceptance/stubbing_non_public_class_method_test.rb +163 -0
- data/test/acceptance/stubbing_non_public_instance_method_test.rb +143 -0
- data/test/acceptance/stubbing_on_non_mock_object_test.rb +64 -0
- data/test/deprecation_disabler.rb +15 -0
- data/test/execution_point.rb +36 -0
- data/test/method_definer.rb +24 -0
- data/test/simple_counter.rb +13 -0
- data/test/test_helper.rb +25 -0
- data/test/test_runner.rb +33 -0
- data/test/unit/any_instance_method_test.rb +126 -0
- data/test/unit/array_inspect_test.rb +16 -0
- data/test/unit/backtrace_filter_test.rb +19 -0
- data/test/unit/cardinality_test.rb +56 -0
- data/test/unit/central_test.rb +65 -0
- data/test/unit/change_state_side_effect_test.rb +41 -0
- data/test/unit/class_method_test.rb +295 -0
- data/test/unit/configuration_test.rb +38 -0
- data/test/unit/date_time_inspect_test.rb +21 -0
- data/test/unit/exception_raiser_test.rb +42 -0
- data/test/unit/expectation_list_test.rb +57 -0
- data/test/unit/expectation_test.rb +480 -0
- data/test/unit/hash_inspect_test.rb +16 -0
- data/test/unit/in_state_ordering_constraint_test.rb +43 -0
- data/test/unit/metaclass_test.rb +22 -0
- data/test/unit/method_matcher_test.rb +23 -0
- data/test/unit/mock_test.rb +302 -0
- data/test/unit/mockery_test.rb +149 -0
- data/test/unit/multiple_yields_test.rb +18 -0
- data/test/unit/no_yields_test.rb +18 -0
- data/test/unit/object_inspect_test.rb +37 -0
- data/test/unit/object_test.rb +82 -0
- data/test/unit/parameter_matchers/all_of_test.rb +26 -0
- data/test/unit/parameter_matchers/any_of_test.rb +26 -0
- data/test/unit/parameter_matchers/anything_test.rb +21 -0
- data/test/unit/parameter_matchers/equals_test.rb +25 -0
- data/test/unit/parameter_matchers/has_entries_test.rb +51 -0
- data/test/unit/parameter_matchers/has_entry_test.rb +82 -0
- data/test/unit/parameter_matchers/has_key_test.rb +55 -0
- data/test/unit/parameter_matchers/has_value_test.rb +57 -0
- data/test/unit/parameter_matchers/includes_test.rb +44 -0
- data/test/unit/parameter_matchers/instance_of_test.rb +25 -0
- data/test/unit/parameter_matchers/is_a_test.rb +25 -0
- data/test/unit/parameter_matchers/kind_of_test.rb +25 -0
- data/test/unit/parameter_matchers/not_test.rb +26 -0
- data/test/unit/parameter_matchers/regexp_matches_test.rb +46 -0
- data/test/unit/parameter_matchers/responds_with_test.rb +25 -0
- data/test/unit/parameter_matchers/stub_matcher.rb +27 -0
- data/test/unit/parameter_matchers/yaml_equivalent_test.rb +25 -0
- data/test/unit/parameters_matcher_test.rb +121 -0
- data/test/unit/return_values_test.rb +63 -0
- data/test/unit/sequence_test.rb +104 -0
- data/test/unit/single_return_value_test.rb +14 -0
- data/test/unit/single_yield_test.rb +18 -0
- data/test/unit/state_machine_test.rb +98 -0
- data/test/unit/string_inspect_test.rb +11 -0
- data/test/unit/yield_parameters_test.rb +93 -0
- metadata +240 -0
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'mocha/backtrace_filter'
|
2
|
+
|
3
|
+
module Mocha
|
4
|
+
|
5
|
+
class ExpectationError < StandardError
|
6
|
+
|
7
|
+
def initialize(message = nil, backtrace = [])
|
8
|
+
super(message)
|
9
|
+
filter = BacktraceFilter.new
|
10
|
+
set_backtrace(filter.filtered(backtrace))
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module Mocha # :nodoc:
|
2
|
+
|
3
|
+
class ExpectationList
|
4
|
+
|
5
|
+
def initialize
|
6
|
+
@expectations = []
|
7
|
+
end
|
8
|
+
|
9
|
+
def add(expectation)
|
10
|
+
@expectations.unshift(expectation)
|
11
|
+
expectation
|
12
|
+
end
|
13
|
+
|
14
|
+
def matches_method?(method_name)
|
15
|
+
@expectations.any? { |expectation| expectation.matches_method?(method_name) }
|
16
|
+
end
|
17
|
+
|
18
|
+
def match(method_name, *arguments)
|
19
|
+
matching_expectations(method_name, *arguments).first
|
20
|
+
end
|
21
|
+
|
22
|
+
def match_allowing_invocation(method_name, *arguments)
|
23
|
+
matching_expectations(method_name, *arguments).detect { |e| e.invocations_allowed? }
|
24
|
+
end
|
25
|
+
|
26
|
+
def verified?(assertion_counter = nil)
|
27
|
+
@expectations.all? { |expectation| expectation.verified?(assertion_counter) }
|
28
|
+
end
|
29
|
+
|
30
|
+
def to_a
|
31
|
+
@expectations
|
32
|
+
end
|
33
|
+
|
34
|
+
def to_set
|
35
|
+
@expectations.to_set
|
36
|
+
end
|
37
|
+
|
38
|
+
def length
|
39
|
+
@expectations.length
|
40
|
+
end
|
41
|
+
|
42
|
+
private
|
43
|
+
|
44
|
+
def matching_expectations(method_name, *arguments)
|
45
|
+
@expectations.select { |e| e.match?(method_name, *arguments) }
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Mocha
|
2
|
+
|
3
|
+
class InStateOrderingConstraint
|
4
|
+
|
5
|
+
def initialize(state_predicate)
|
6
|
+
@state_predicate = state_predicate
|
7
|
+
end
|
8
|
+
|
9
|
+
def allows_invocation_now?
|
10
|
+
@state_predicate.active?
|
11
|
+
end
|
12
|
+
|
13
|
+
def mocha_inspect
|
14
|
+
"when #{@state_predicate.mocha_inspect}"
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
require 'date'
|
2
|
+
|
3
|
+
module Mocha
|
4
|
+
|
5
|
+
module ObjectMethods
|
6
|
+
def mocha_inspect
|
7
|
+
address = self.__id__ * 2
|
8
|
+
address += 0x100000000 if address < 0
|
9
|
+
inspect =~ /#</ ? "#<#{self.class}:0x#{'%x' % address}>" : inspect
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
module StringMethods
|
14
|
+
def mocha_inspect
|
15
|
+
inspect.gsub(/\"/, "'")
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
module ArrayMethods
|
20
|
+
def mocha_inspect
|
21
|
+
"[#{collect { |member| member.mocha_inspect }.join(', ')}]"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
module HashMethods
|
26
|
+
def mocha_inspect
|
27
|
+
"{#{collect { |key, value| "#{key.mocha_inspect} => #{value.mocha_inspect}" }.join(', ')}}"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
module TimeMethods
|
32
|
+
def mocha_inspect
|
33
|
+
"#{inspect} (#{to_f} secs)"
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
module DateMethods
|
38
|
+
def mocha_inspect
|
39
|
+
to_s
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
class Object
|
46
|
+
include Mocha::ObjectMethods
|
47
|
+
end
|
48
|
+
|
49
|
+
class String
|
50
|
+
include Mocha::StringMethods
|
51
|
+
end
|
52
|
+
|
53
|
+
class Array
|
54
|
+
include Mocha::ArrayMethods
|
55
|
+
end
|
56
|
+
|
57
|
+
class Hash
|
58
|
+
include Mocha::HashMethods
|
59
|
+
end
|
60
|
+
|
61
|
+
class Time
|
62
|
+
include Mocha::TimeMethods
|
63
|
+
end
|
64
|
+
|
65
|
+
class Date
|
66
|
+
include Mocha::DateMethods
|
67
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'mocha/class_method'
|
2
|
+
|
3
|
+
module Mocha
|
4
|
+
|
5
|
+
class InstanceMethod < ClassMethod
|
6
|
+
|
7
|
+
def method_exists?(method)
|
8
|
+
return true if stubbee.public_methods(false).include?(method)
|
9
|
+
return true if stubbee.protected_methods(false).include?(method)
|
10
|
+
return true if stubbee.private_methods(false).include?(method)
|
11
|
+
return false
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module Mocha
|
2
|
+
|
3
|
+
module Integration
|
4
|
+
|
5
|
+
class << self
|
6
|
+
|
7
|
+
def monkey_patches
|
8
|
+
patches = []
|
9
|
+
if test_unit_testcase_defined? && !test_unit_testcase_inherits_from_miniunit_testcase?
|
10
|
+
patches << 'mocha/integration/test_unit'
|
11
|
+
end
|
12
|
+
if mini_unit_testcase_defined?
|
13
|
+
patches << 'mocha/integration/mini_test'
|
14
|
+
end
|
15
|
+
patches
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_unit_testcase_defined?
|
19
|
+
defined?(Test) && defined?(Test::Unit) && defined?(Test::Unit::TestCase)
|
20
|
+
end
|
21
|
+
|
22
|
+
def mini_unit_testcase_defined?
|
23
|
+
defined?(MiniTest) && defined?(MiniTest::Unit) && defined?(MiniTest::Unit::TestCase)
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_unit_testcase_inherits_from_miniunit_testcase?
|
27
|
+
test_unit_testcase_defined? && mini_unit_testcase_defined? && Test::Unit::TestCase.ancestors.include?(MiniTest::Unit::TestCase)
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
|
36
|
+
Mocha::Integration.monkey_patches.each do |patch|
|
37
|
+
require patch
|
38
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'mocha/api'
|
2
|
+
|
3
|
+
if !MiniTest::Unit::TestCase.ancestors.include?(Mocha::API)
|
4
|
+
|
5
|
+
require 'mocha/integration/mini_test/version_131_and_above'
|
6
|
+
|
7
|
+
module MiniTest
|
8
|
+
class Unit
|
9
|
+
class TestCase
|
10
|
+
|
11
|
+
include Mocha::API
|
12
|
+
|
13
|
+
alias_method :run_before_mocha, :run
|
14
|
+
remove_method :run
|
15
|
+
|
16
|
+
include Mocha::Integration::MiniTest::Version131AndAbove
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Mocha
|
2
|
+
|
3
|
+
module Integration
|
4
|
+
|
5
|
+
module MiniTest
|
6
|
+
|
7
|
+
class AssertionCounter
|
8
|
+
|
9
|
+
def initialize(test_case)
|
10
|
+
@test_case = test_case
|
11
|
+
end
|
12
|
+
|
13
|
+
def increment
|
14
|
+
@test_case._assertions += 1
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'mocha/integration/mini_test/assertion_counter'
|
2
|
+
require 'mocha/expectation_error'
|
3
|
+
|
4
|
+
module Mocha
|
5
|
+
|
6
|
+
module Integration
|
7
|
+
|
8
|
+
module MiniTest
|
9
|
+
|
10
|
+
def self.translate(exception)
|
11
|
+
return exception unless exception.kind_of?(::Mocha::ExpectationError)
|
12
|
+
translated_exception = ::MiniTest::Assertion.new(exception.message)
|
13
|
+
translated_exception.set_backtrace(exception.backtrace)
|
14
|
+
translated_exception
|
15
|
+
end
|
16
|
+
|
17
|
+
module Version131AndAbove
|
18
|
+
def run runner
|
19
|
+
assertion_counter = AssertionCounter.new(self)
|
20
|
+
result = '.'
|
21
|
+
name = (self.respond_to?(:name) ? self.name : self.__name__)
|
22
|
+
begin
|
23
|
+
begin
|
24
|
+
@passed = nil
|
25
|
+
self.setup
|
26
|
+
self.__send__ name
|
27
|
+
mocha_verify(assertion_counter)
|
28
|
+
@passed = true
|
29
|
+
rescue Exception => e
|
30
|
+
@passed = false
|
31
|
+
result = runner.puke(self.class, name, Mocha::Integration::MiniTest.translate(e))
|
32
|
+
ensure
|
33
|
+
begin
|
34
|
+
self.teardown
|
35
|
+
rescue Exception => e
|
36
|
+
result = runner.puke(self.class, name, Mocha::Integration::MiniTest.translate(e))
|
37
|
+
end
|
38
|
+
end
|
39
|
+
ensure
|
40
|
+
mocha_teardown
|
41
|
+
end
|
42
|
+
result
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'mocha/api'
|
2
|
+
|
3
|
+
if !Test::Unit::TestCase.ancestors.include?(Mocha::API)
|
4
|
+
|
5
|
+
require 'mocha/integration/test_unit/gem_version_200'
|
6
|
+
require 'mocha/integration/test_unit/gem_version_201_and_above'
|
7
|
+
require 'mocha/integration/test_unit/ruby_version_185_and_below'
|
8
|
+
require 'mocha/integration/test_unit/ruby_version_186_and_above'
|
9
|
+
|
10
|
+
module Test
|
11
|
+
module Unit
|
12
|
+
class TestCase
|
13
|
+
|
14
|
+
include Mocha::API
|
15
|
+
|
16
|
+
alias_method :run_before_mocha, :run
|
17
|
+
remove_method :run
|
18
|
+
|
19
|
+
test_unit_version = begin
|
20
|
+
require 'test/unit/version'
|
21
|
+
Test::Unit::VERSION
|
22
|
+
rescue LoadError
|
23
|
+
'1.x'
|
24
|
+
end
|
25
|
+
|
26
|
+
if test_unit_version == '2.0.0'
|
27
|
+
include Mocha::Integration::TestUnit::GemVersion200
|
28
|
+
elsif test_unit_version >= '2.0.1'
|
29
|
+
include Mocha::Integration::TestUnit::GemVersion201AndAbove
|
30
|
+
elsif RUBY_VERSION < '1.8.6'
|
31
|
+
include Mocha::Integration::TestUnit::RubyVersion185AndBelow
|
32
|
+
else
|
33
|
+
include Mocha::Integration::TestUnit::RubyVersion186AndAbove
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Mocha
|
2
|
+
|
3
|
+
module Integration
|
4
|
+
|
5
|
+
module TestUnit
|
6
|
+
|
7
|
+
class AssertionCounter
|
8
|
+
|
9
|
+
def initialize(test_result)
|
10
|
+
@test_result = test_result
|
11
|
+
end
|
12
|
+
|
13
|
+
def increment
|
14
|
+
@test_result.add_assertion
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'test/unit/testcase'
|
2
|
+
require 'mocha/integration/test_unit/assertion_counter'
|
3
|
+
require 'mocha/expectation_error'
|
4
|
+
|
5
|
+
module Mocha
|
6
|
+
|
7
|
+
module Integration
|
8
|
+
|
9
|
+
module TestUnit
|
10
|
+
|
11
|
+
module GemVersion200
|
12
|
+
def run(result)
|
13
|
+
assertion_counter = AssertionCounter.new(result)
|
14
|
+
begin
|
15
|
+
@_result = result
|
16
|
+
yield(Test::Unit::TestCase::STARTED, name)
|
17
|
+
begin
|
18
|
+
begin
|
19
|
+
run_setup
|
20
|
+
__send__(@method_name)
|
21
|
+
mocha_verify(assertion_counter)
|
22
|
+
rescue Mocha::ExpectationError => e
|
23
|
+
add_failure(e.message, e.backtrace)
|
24
|
+
rescue Exception
|
25
|
+
@interrupted = true
|
26
|
+
raise unless handle_exception($!)
|
27
|
+
ensure
|
28
|
+
begin
|
29
|
+
run_teardown
|
30
|
+
rescue Exception
|
31
|
+
raise unless handle_exception($!)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
ensure
|
35
|
+
mocha_teardown
|
36
|
+
end
|
37
|
+
result.add_run
|
38
|
+
yield(Test::Unit::TestCase::FINISHED, name)
|
39
|
+
ensure
|
40
|
+
@_result = nil
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'test/unit/testcase'
|
2
|
+
require 'mocha/integration/test_unit/assertion_counter'
|
3
|
+
require 'mocha/expectation_error'
|
4
|
+
|
5
|
+
module Mocha
|
6
|
+
|
7
|
+
module Integration
|
8
|
+
|
9
|
+
module TestUnit
|
10
|
+
|
11
|
+
module GemVersion201AndAbove
|
12
|
+
def run(result)
|
13
|
+
assertion_counter = AssertionCounter.new(result)
|
14
|
+
begin
|
15
|
+
@_result = result
|
16
|
+
yield(Test::Unit::TestCase::STARTED, name)
|
17
|
+
begin
|
18
|
+
begin
|
19
|
+
run_setup
|
20
|
+
run_test
|
21
|
+
mocha_verify(assertion_counter)
|
22
|
+
rescue Mocha::ExpectationError => e
|
23
|
+
add_failure(e.message, e.backtrace)
|
24
|
+
rescue Exception
|
25
|
+
@interrupted = true
|
26
|
+
raise unless handle_exception($!)
|
27
|
+
ensure
|
28
|
+
begin
|
29
|
+
run_teardown
|
30
|
+
rescue Exception
|
31
|
+
raise unless handle_exception($!)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
ensure
|
35
|
+
mocha_teardown
|
36
|
+
end
|
37
|
+
result.add_run
|
38
|
+
yield(Test::Unit::TestCase::FINISHED, name)
|
39
|
+
ensure
|
40
|
+
@_result = nil
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|