mocha 0.3.3 → 0.4.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.
Files changed (52) hide show
  1. data/README +4 -4
  2. data/RELEASE +32 -0
  3. data/Rakefile +3 -3
  4. data/examples/misc.rb +36 -0
  5. data/examples/mocha.rb +26 -0
  6. data/examples/stubba.rb +65 -0
  7. data/lib/mocha.rb +17 -5
  8. data/lib/{stubba → mocha}/any_instance_method.rb +2 -2
  9. data/lib/mocha/auto_verify.rb +7 -7
  10. data/lib/{stubba → mocha}/central.rb +2 -2
  11. data/lib/{stubba → mocha}/class_method.rb +7 -10
  12. data/lib/mocha/expectation.rb +88 -33
  13. data/lib/mocha/expectation_error.rb +6 -0
  14. data/lib/mocha/inspect.rb +1 -1
  15. data/lib/mocha/instance_method.rb +8 -0
  16. data/lib/mocha/metaclass.rb +1 -1
  17. data/lib/mocha/mock.rb +8 -8
  18. data/lib/mocha/mock_methods.rb +60 -16
  19. data/lib/{stubba → mocha}/object.rb +8 -10
  20. data/lib/mocha/setup_and_teardown.rb +23 -0
  21. data/lib/mocha/standalone.rb +30 -0
  22. data/lib/mocha/test_case_adapter.rb +49 -0
  23. data/lib/mocha_standalone.rb +2 -0
  24. data/lib/stubba.rb +2 -8
  25. data/test/all_tests.rb +9 -10
  26. data/test/method_definer.rb +2 -2
  27. data/test/{stubba → mocha}/any_instance_method_test.rb +1 -3
  28. data/test/mocha/auto_verify_test.rb +9 -10
  29. data/test/{stubba → mocha}/central_test.rb +5 -4
  30. data/test/{stubba → mocha}/class_method_test.rb +40 -10
  31. data/test/mocha/expectation_test.rb +144 -67
  32. data/test/mocha/inspect_test.rb +12 -1
  33. data/test/mocha/metaclass_test.rb +22 -0
  34. data/test/mocha/mock_methods_test.rb +65 -7
  35. data/test/mocha/mock_test.rb +41 -4
  36. data/test/{stubba → mocha}/object_test.rb +9 -9
  37. data/test/mocha/setup_and_teardown_test.rb +76 -0
  38. data/test/mocha_acceptance_test.rb +8 -8
  39. data/test/mocha_test_result_integration_test.rb +5 -6
  40. data/test/standalone_acceptance_test.rb +110 -0
  41. data/test/stubba_acceptance_test.rb +2 -2
  42. data/test/stubba_integration_test.rb +17 -24
  43. data/test/stubba_test_result_integration_test.rb +5 -6
  44. metadata +22 -18
  45. data/lib/shared/backtracefilter.rb +0 -46
  46. data/lib/smart_test_case.rb +0 -5
  47. data/lib/smart_test_case/multiple_setup_and_teardown.rb +0 -123
  48. data/lib/stubba/instance_method.rb +0 -18
  49. data/lib/stubba/setup_and_teardown.rb +0 -25
  50. data/test/smart_test_case/multiple_setup_and_teardown_test.rb +0 -192
  51. data/test/stubba/instance_method_test.rb +0 -46
  52. data/test/stubba/setup_and_teardown_test.rb +0 -134
@@ -1,5 +1,5 @@
1
1
  require 'test_helper'
2
- require 'stubba'
2
+ require 'mocha'
3
3
 
4
4
  class Widget
5
5
 
@@ -68,7 +68,7 @@ class StubbaAcceptanceTest < Test::Unit::TestCase
68
68
  def test_should_stub_two_different_class_methods_again
69
69
  should_stub_two_different_class_methods
70
70
  end
71
-
71
+
72
72
  private
73
73
 
74
74
  def should_stub_module_method
@@ -1,31 +1,24 @@
1
1
  require 'test_helper'
2
2
 
3
- require 'stubba/object'
4
- require 'smart_test_case/multiple_setup_and_teardown'
5
- require 'stubba/setup_and_teardown'
3
+ require 'mocha/object'
4
+ require 'mocha/test_case_adapter'
5
+ require 'mocha/standalone'
6
6
 
7
7
  class StubbaIntegrationTest < Test::Unit::TestCase
8
8
 
9
9
  class DontMessWithMe
10
- def self.method_x
10
+ def self.my_class_method
11
11
  :original_return_value
12
12
  end
13
- def instance_method_1
13
+ def my_instance_method
14
14
  :original_return_value
15
15
  end
16
- # def self.object
17
- # @object ||= Class.new do
18
- # def instance_method_1
19
- # :original_return_value
20
- # end
21
- # end.new
22
- # end
23
16
  end
24
17
 
25
18
  def test_should_stub_class_method_within_test
26
19
  test = build_test do
27
- DontMessWithMe.expects(:method_x).returns(:new_return_value)
28
- assert_equal :new_return_value, DontMessWithMe.method_x
20
+ DontMessWithMe.expects(:my_class_method).returns(:new_return_value)
21
+ assert_equal :new_return_value, DontMessWithMe.my_class_method
29
22
  end
30
23
 
31
24
  test_result = Test::Unit::TestResult.new
@@ -35,16 +28,16 @@ class StubbaIntegrationTest < Test::Unit::TestCase
35
28
 
36
29
  def test_should_leave_stubbed_class_method_unchanged_after_test
37
30
  test = build_test do
38
- DontMessWithMe.expects(:method_x).returns(:new_return_value)
31
+ DontMessWithMe.expects(:my_class_method).returns(:new_return_value)
39
32
  end
40
33
 
41
34
  test.run(Test::Unit::TestResult.new) {}
42
- assert_equal :original_return_value, DontMessWithMe.method_x
35
+ assert_equal :original_return_value, DontMessWithMe.my_class_method
43
36
  end
44
37
 
45
38
  def test_should_reset_class_expectations_after_test
46
39
  test = build_test do
47
- DontMessWithMe.expects(:method_x)
40
+ DontMessWithMe.expects(:my_class_method)
48
41
  end
49
42
 
50
43
  test.run(Test::Unit::TestResult.new) {}
@@ -54,8 +47,8 @@ class StubbaIntegrationTest < Test::Unit::TestCase
54
47
  def test_should_stub_instance_method_within_test
55
48
  instance = DontMessWithMe.new
56
49
  test = build_test do
57
- instance.expects(:instance_method_1).returns(:new_return_value)
58
- assert_equal :new_return_value, instance.instance_method_1
50
+ instance.expects(:my_instance_method).returns(:new_return_value)
51
+ assert_equal :new_return_value, instance.my_instance_method
59
52
  end
60
53
  test_result = Test::Unit::TestResult.new
61
54
  test.run(test_result) {}
@@ -65,17 +58,17 @@ class StubbaIntegrationTest < Test::Unit::TestCase
65
58
  def test_should_leave_stubbed_instance_method_unchanged_after_test
66
59
  instance = DontMessWithMe.new
67
60
  test = build_test do
68
- instance.expects(:instance_method_1).returns(:new_return_value)
61
+ instance.expects(:my_instance_method).returns(:new_return_value)
69
62
  end
70
63
 
71
64
  test.run(Test::Unit::TestResult.new) {}
72
- assert_equal :original_return_value, instance.instance_method_1
65
+ assert_equal :original_return_value, instance.my_instance_method
73
66
  end
74
67
 
75
68
  def test_should_reset_instance_expectations_after_test
76
69
  instance = DontMessWithMe.new
77
70
  test = build_test do
78
- instance.expects(:instance_method_1).returns(:new_return_value)
71
+ instance.expects(:my_instance_method).returns(:new_return_value)
79
72
  end
80
73
 
81
74
  test.run(Test::Unit::TestResult.new) {}
@@ -86,8 +79,8 @@ class StubbaIntegrationTest < Test::Unit::TestCase
86
79
 
87
80
  def build_test(&block)
88
81
  test_class = Class.new(Test::Unit::TestCase) do
89
- include MultipleSetupAndTeardown
90
- include SetupAndTeardown
82
+ include Mocha::Standalone
83
+ include Mocha::TestCaseAdapter
91
84
  define_method(:test_me, &block)
92
85
  end
93
86
  test_class.new(:test_me)
@@ -1,8 +1,7 @@
1
1
  require 'test_helper'
2
- require 'stubba/object'
3
- require 'smart_test_case/multiple_setup_and_teardown'
4
- require 'stubba/setup_and_teardown'
5
- require 'shared/backtracefilter'
2
+ require 'mocha/object'
3
+ require 'mocha/standalone'
4
+ require 'mocha/test_case_adapter'
6
5
  require 'execution_point'
7
6
 
8
7
  class StubbaTestResultIntegrationTest < Test::Unit::TestCase
@@ -74,8 +73,8 @@ class StubbaTestResultIntegrationTest < Test::Unit::TestCase
74
73
 
75
74
  def run_test(test_result = Test::Unit::TestResult.new, &block)
76
75
  test_class = Class.new(Test::Unit::TestCase) do
77
- include MultipleSetupAndTeardown
78
- include SetupAndTeardown
76
+ include Mocha::Standalone
77
+ include Mocha::TestCaseAdapter
79
78
  define_method(:test_me, &block)
80
79
  end
81
80
  test = test_class.new(:test_me)
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.11
3
3
  specification_version: 1
4
4
  name: mocha
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.3.3
7
- date: 2007-01-18 00:00:00 +00:00
6
+ version: 0.4.0
7
+ date: 2007-01-22 00:00:00 +00:00
8
8
  summary: Mocking and stubbing library
9
9
  require_paths:
10
10
  - lib
@@ -31,48 +31,52 @@ authors:
31
31
  - James Mead
32
32
  files:
33
33
  - lib/mocha.rb
34
- - lib/smart_test_case.rb
34
+ - lib/mocha_standalone.rb
35
35
  - lib/stubba.rb
36
+ - lib/mocha/any_instance_method.rb
36
37
  - lib/mocha/auto_verify.rb
38
+ - lib/mocha/central.rb
39
+ - lib/mocha/class_method.rb
37
40
  - lib/mocha/expectation.rb
41
+ - lib/mocha/expectation_error.rb
38
42
  - lib/mocha/infinite_range.rb
39
43
  - lib/mocha/inspect.rb
44
+ - lib/mocha/instance_method.rb
40
45
  - lib/mocha/metaclass.rb
41
46
  - lib/mocha/mock.rb
42
47
  - lib/mocha/mock_methods.rb
48
+ - lib/mocha/object.rb
43
49
  - lib/mocha/pretty_parameters.rb
44
- - lib/shared/backtracefilter.rb
45
- - lib/smart_test_case/multiple_setup_and_teardown.rb
46
- - lib/stubba/any_instance_method.rb
47
- - lib/stubba/central.rb
48
- - lib/stubba/class_method.rb
49
- - lib/stubba/instance_method.rb
50
- - lib/stubba/object.rb
51
- - lib/stubba/setup_and_teardown.rb
50
+ - lib/mocha/setup_and_teardown.rb
51
+ - lib/mocha/standalone.rb
52
+ - lib/mocha/test_case_adapter.rb
52
53
  - test/active_record_test_case.rb
53
54
  - test/all_tests.rb
54
55
  - test/execution_point.rb
55
56
  - test/method_definer.rb
56
57
  - test/mocha_acceptance_test.rb
57
58
  - test/mocha_test_result_integration_test.rb
59
+ - test/standalone_acceptance_test.rb
58
60
  - test/stubba_acceptance_test.rb
59
61
  - test/stubba_integration_test.rb
60
62
  - test/stubba_test_result_integration_test.rb
61
63
  - test/test_helper.rb
64
+ - test/mocha/any_instance_method_test.rb
62
65
  - test/mocha/auto_verify_test.rb
66
+ - test/mocha/central_test.rb
67
+ - test/mocha/class_method_test.rb
63
68
  - test/mocha/expectation_test.rb
64
69
  - test/mocha/infinite_range_test.rb
65
70
  - test/mocha/inspect_test.rb
71
+ - test/mocha/metaclass_test.rb
66
72
  - test/mocha/mock_methods_test.rb
67
73
  - test/mocha/mock_test.rb
74
+ - test/mocha/object_test.rb
68
75
  - test/mocha/pretty_parameters_test.rb
69
- - test/smart_test_case/multiple_setup_and_teardown_test.rb
70
- - test/stubba/any_instance_method_test.rb
71
- - test/stubba/central_test.rb
72
- - test/stubba/class_method_test.rb
73
- - test/stubba/instance_method_test.rb
74
- - test/stubba/object_test.rb
75
- - test/stubba/setup_and_teardown_test.rb
76
+ - test/mocha/setup_and_teardown_test.rb
77
+ - examples/misc.rb
78
+ - examples/mocha.rb
79
+ - examples/stubba.rb
76
80
  - COPYING
77
81
  - MIT-LICENSE
78
82
  - Rakefile
@@ -1,46 +0,0 @@
1
- module Test
2
- module Unit
3
- module Util
4
- module BacktraceFilter
5
-
6
- # quick rip-off of Test::Unit code - there must be a better way of doing this!
7
-
8
- MOCHA_FILE_SEPARATORS = %r{[\\/:]}
9
- MOCHA_PREFIX = __FILE__.split(MOCHA_FILE_SEPARATORS)[0..-3]
10
- MOCHA_RB_FILE = /\.rb\Z/
11
-
12
- alias_method :__filter_backtrace__, :filter_backtrace
13
-
14
- def filter_backtrace(backtrace, prefix=nil)
15
- backtrace = __filter_backtrace__(backtrace, prefix)
16
- return ["No backtrace"] unless(backtrace)
17
- split_p = if(prefix)
18
- prefix.split(MOCHA_FILE_SEPARATORS)
19
- else
20
- MOCHA_PREFIX
21
- end
22
- match = proc do |e|
23
- split_e = e.split(MOCHA_FILE_SEPARATORS)[0, split_p.size]
24
- next false unless(split_e[0..-2] == split_p[0..-2])
25
- split_e[-1].sub(MOCHA_RB_FILE, '') == split_p[-1]
26
- end
27
- return backtrace unless(backtrace.detect(&match))
28
- found_prefix = false
29
- new_backtrace = backtrace.reverse.reject do |e|
30
- if(match[e])
31
- found_prefix = true
32
- true
33
- elsif(found_prefix)
34
- false
35
- else
36
- true
37
- end
38
- end.reverse
39
- new_backtrace = (new_backtrace.empty? ? backtrace : new_backtrace)
40
- new_backtrace = new_backtrace.reject(&match)
41
- new_backtrace.empty? ? backtrace : new_backtrace
42
- end
43
- end
44
- end
45
- end
46
- end
@@ -1,5 +0,0 @@
1
- require 'smart_test_case/multiple_setup_and_teardown'
2
-
3
- class Test::Unit::TestCase
4
- include MultipleSetupAndTeardown unless ancestors.include?(MultipleSetupAndTeardown)
5
- end
@@ -1,123 +0,0 @@
1
- module MultipleSetupAndTeardown
2
-
3
- def self.included(base)
4
-
5
- base.class_eval do
6
-
7
- def self.method_added(symbol)
8
- # disable until later
9
- end
10
-
11
- if method_defined?(:setup) then
12
- alias_method :setup_original, :setup
13
- define_method(:setup_new) do
14
- begin
15
- setup_original
16
- ensure
17
- setup_mocha
18
- end
19
- end
20
- else
21
- define_method(:setup_new) do
22
- setup_mocha
23
- end
24
- end
25
- alias_method :setup, :setup_new
26
-
27
- if method_defined?(:teardown) then
28
- alias_method :teardown_original, :teardown
29
- define_method(:teardown_new) do
30
- begin
31
- teardown_mocha
32
- ensure
33
- teardown_original
34
- end
35
- end
36
- else
37
- define_method(:teardown_new) do
38
- teardown_mocha
39
- end
40
- end
41
- alias_method :teardown, :teardown_new
42
-
43
- def self.method_added(method)
44
- case method
45
- when :setup
46
- unless method_defined?(:setup_added)
47
- alias_method :setup_added, :setup
48
- define_method(:setup) do
49
- begin
50
- setup_new
51
- ensure
52
- setup_added
53
- end
54
- end
55
- end
56
- when :teardown
57
- unless method_defined?(:teardown_added)
58
- alias_method :teardown_added, :teardown
59
- define_method(:teardown) do
60
- begin
61
- teardown_added
62
- ensure
63
- teardown_new
64
- end
65
- end
66
- end
67
- end
68
- end
69
-
70
- class << self
71
-
72
- def setup_methods
73
- @setup_methods ||= []
74
- end
75
-
76
- def teardown_methods
77
- @teardown_methods ||= []
78
- end
79
-
80
- def add_setup_method(symbol)
81
- setup_methods << symbol
82
- end
83
-
84
- def add_teardown_method(symbol)
85
- teardown_methods << symbol
86
- end
87
-
88
- private
89
-
90
- def inherited_with_setup_and_teardown_methods(child)
91
- inherited_without_setup_and_teardown_methods(child) if respond_to?(:inherited_without_setup_and_teardown_methods, true)
92
- child.instance_variable_set('@setup_methods', setup_methods.dup)
93
- child.instance_variable_set('@teardown_methods', teardown_methods.dup)
94
- end
95
-
96
- if respond_to?(:inherited, true)
97
- alias_method :inherited_without_setup_and_teardown_methods, :inherited
98
- end
99
- alias_method :inherited, :inherited_with_setup_and_teardown_methods
100
-
101
- end
102
-
103
- def setup_mocha
104
- self.class.class_eval { setup_methods }.each { |symbol| send(symbol) }
105
- end
106
-
107
- def teardown_mocha
108
- stored_exception = nil
109
- self.class.class_eval { teardown_methods }.reverse.each do |symbol|
110
- begin
111
- send(symbol)
112
- rescue Exception => e
113
- stored_exception ||= e
114
- end
115
- end
116
- raise stored_exception if stored_exception
117
- end
118
-
119
- end
120
-
121
- end
122
-
123
- end
@@ -1,18 +0,0 @@
1
- require 'stubba/class_method'
2
-
3
- module Stubba
4
-
5
- class InstanceMethod < ClassMethod
6
-
7
- def stub
8
- raise cannot_replace_method_error unless exists?
9
- super
10
- end
11
-
12
- def exists?
13
- stubbee.respond_to?(method)
14
- end
15
-
16
- end
17
-
18
- end
@@ -1,25 +0,0 @@
1
- require 'stubba/central'
2
-
3
- module SetupAndTeardown
4
-
5
- def self.included(base)
6
- base.add_setup_method(:setup_stubs)
7
- base.add_teardown_method(:teardown_stubs)
8
- end
9
-
10
- def setup_stubs
11
- $stubba = Stubba::Central.new
12
- end
13
-
14
- def teardown_stubs
15
- if $stubba then
16
- begin
17
- $stubba.verify_all { add_assertion }
18
- ensure
19
- $stubba.unstub_all
20
- $stubba = nil
21
- end
22
- end
23
- end
24
-
25
- end
@@ -1,192 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "..", "test_helper")
2
- require 'smart_test_case/multiple_setup_and_teardown'
3
- require 'active_record_test_case'
4
-
5
- class MultipleSetupAndTeardownTest < Test::Unit::TestCase
6
-
7
- def test_should_call_added_setup
8
- test_case = Class.new(Test::Unit::TestCase) do
9
- define_method(:methods_called) { @methods_called ||= [] }
10
- include MultipleSetupAndTeardown
11
- add_setup_method(:added_setup)
12
- define_method(:added_setup) { methods_called << :added_setup }
13
- define_method(:test_method) { methods_called << :test_method }
14
- end
15
- test = test_case.new(:test_method)
16
- test_result = Test::Unit::TestResult.new
17
- test.run(test_result) {}
18
- assert test_result.passed?
19
- assert_equal [:added_setup, :test_method], test.methods_called
20
- end
21
-
22
- def test_should_call_added_teardown
23
- test_case = Class.new(Test::Unit::TestCase) do
24
- define_method(:methods_called) { @methods_called ||= [] }
25
- include MultipleSetupAndTeardown
26
- add_teardown_method(:added_teardown)
27
- define_method(:added_teardown) { methods_called << :added_teardown }
28
- define_method(:test_method) { methods_called << :test_method }
29
- end
30
- test = test_case.new(:test_method)
31
- test_result = Test::Unit::TestResult.new
32
- test.run(test_result) {}
33
- assert test_result.passed?
34
- assert_equal [:test_method, :added_teardown], test.methods_called
35
- end
36
-
37
- def test_should_call_both_added_teardowns_even_if_one_raises_exception
38
- test_case = Class.new(Test::Unit::TestCase) do
39
- define_method(:methods_called) { @methods_called ||= [] }
40
- include MultipleSetupAndTeardown
41
- add_teardown_method(:added_teardown_1)
42
- add_teardown_method(:added_teardown_2)
43
- define_method(:added_teardown_1) { methods_called << :added_teardown_1 }
44
- define_method(:added_teardown_2) { methods_called << :added_teardown_2; raise }
45
- define_method(:test_method) { methods_called << :test_method }
46
- end
47
- test = test_case.new(:test_method)
48
- test_result = Test::Unit::TestResult.new
49
- test.run(test_result) {}
50
- assert_equal false, test_result.passed?
51
- assert_equal [:test_method, :added_teardown_2, :added_teardown_1], test.methods_called
52
- end
53
-
54
- def test_should_call_added_setup_and_setup_defined_before_module_included
55
- test_case = Class.new(Test::Unit::TestCase) do
56
- define_method(:methods_called) { @methods_called ||= [] }
57
- define_method(:setup) { methods_called << :setup }
58
- include MultipleSetupAndTeardown
59
- add_setup_method(:added_setup)
60
- define_method(:added_setup) { methods_called << :added_setup }
61
- define_method(:test_method) { methods_called << :test_method }
62
- end
63
- test = test_case.new(:test_method)
64
- test_result = Test::Unit::TestResult.new
65
- test.run(test_result) {}
66
- assert test_result.passed?
67
- assert_equal [:setup, :added_setup, :test_method], test.methods_called
68
- end
69
-
70
- def test_should_call_added_teardown_and_teardown_defined_before_module_included
71
- test_case = Class.new(Test::Unit::TestCase) do
72
- define_method(:methods_called) { @methods_called ||= [] }
73
- define_method(:teardown) { methods_called << :teardown }
74
- include MultipleSetupAndTeardown
75
- add_teardown_method(:added_teardown)
76
- define_method(:added_teardown) { methods_called << :added_teardown }
77
- define_method(:test_method) { methods_called << :test_method }
78
- end
79
- test = test_case.new(:test_method)
80
- test_result = Test::Unit::TestResult.new
81
- test.run(test_result) {}
82
- assert test_result.passed?
83
- assert_equal [:test_method, :added_teardown, :teardown], test.methods_called
84
- end
85
-
86
- def test_should_call_added_setup_and_setup_defined_after_module_included
87
- test_case = Class.new(Test::Unit::TestCase) do
88
- define_method(:methods_called) { @methods_called ||= [] }
89
- include MultipleSetupAndTeardown
90
- define_method(:setup) { methods_called << :setup }
91
- add_setup_method(:added_setup)
92
- define_method(:added_setup) { methods_called << :added_setup }
93
- define_method(:test_method) { methods_called << :test_method }
94
- end
95
- test = test_case.new(:test_method)
96
- test_result = Test::Unit::TestResult.new
97
- test.run(test_result) {}
98
- assert test_result.passed?
99
- assert_equal [:added_setup, :setup, :test_method], test.methods_called
100
- end
101
-
102
- def test_should_call_added_teardown_and_teardown_defined_after_module_included
103
- test_case = Class.new(Test::Unit::TestCase) do
104
- define_method(:methods_called) { @methods_called ||= [] }
105
- include MultipleSetupAndTeardown
106
- define_method(:teardown) { methods_called << :teardown }
107
- add_teardown_method(:added_teardown)
108
- define_method(:added_teardown) { methods_called << :added_teardown }
109
- define_method(:test_method) { methods_called << :test_method }
110
- end
111
- test = test_case.new(:test_method)
112
- test_result = Test::Unit::TestResult.new
113
- test.run(test_result) {}
114
- assert test_result.passed?
115
- assert_equal [:test_method, :teardown, :added_teardown], test.methods_called
116
- end
117
-
118
- def test_should_call_added_setup_and_setup_defined_in_derived_test_case
119
- test_case = Class.new(Test::Unit::TestCase) do
120
- define_method(:methods_called) { @methods_called ||= [] }
121
- include MultipleSetupAndTeardown
122
- add_setup_method(:added_setup)
123
- define_method(:added_setup) { methods_called << :added_setup }
124
- end
125
- derived_test_case = Class.new(test_case) do
126
- define_method(:setup) { methods_called << :setup }
127
- define_method(:test_method) { methods_called << :test_method }
128
- end
129
- test = derived_test_case.new(:test_method)
130
- test_result = Test::Unit::TestResult.new
131
- test.run(test_result) {}
132
- assert test_result.passed?
133
- assert_equal [:added_setup, :setup, :test_method], test.methods_called
134
- end
135
-
136
- def test_should_call_added_teardown_and_teardown_defined_in_derived_test_case
137
- test_case = Class.new(Test::Unit::TestCase) do
138
- define_method(:methods_called) { @methods_called ||= [] }
139
- include MultipleSetupAndTeardown
140
- add_teardown_method(:added_teardown)
141
- define_method(:added_teardown) { methods_called << :added_teardown }
142
- end
143
- derived_test_case = Class.new(test_case) do
144
- define_method(:teardown) { methods_called << :teardown }
145
- define_method(:test_method) { methods_called << :test_method }
146
- end
147
- test = derived_test_case.new(:test_method)
148
- test_result = Test::Unit::TestResult.new
149
- test.run(test_result) {}
150
- assert test_result.passed?
151
- assert_equal [:test_method, :teardown, :added_teardown], test.methods_called
152
- end
153
-
154
- def test_should_call_added_setup_and_setup_defined_in_derived_test_case_with_active_record_setup_with_fixtures
155
- test_case = Class.new(Test::Unit::TestCase) do
156
- define_method(:methods_called) { @methods_called ||= [] }
157
- include ActiveRecordTestCase
158
- include MultipleSetupAndTeardown
159
- add_setup_method(:added_setup)
160
- define_method(:added_setup) { methods_called << :added_setup }
161
- end
162
- derived_test_case = Class.new(test_case) do
163
- define_method(:setup) { methods_called << :setup }
164
- define_method(:test_method) { methods_called << :test_method }
165
- end
166
- test = derived_test_case.new(:test_method)
167
- test_result = Test::Unit::TestResult.new
168
- test.run(test_result) {}
169
- assert test_result.passed?
170
- assert_equal [:setup_with_fixtures, :added_setup, :setup, :test_method, :teardown_with_fixtures], test.methods_called
171
- end
172
-
173
- def test_should_call_added_teardown_and_teardown_defined_in_derived_test_case_with_active_record_teardown_with_fixtures
174
- test_case = Class.new(Test::Unit::TestCase) do
175
- define_method(:methods_called) { @methods_called ||= [] }
176
- include ActiveRecordTestCase
177
- include MultipleSetupAndTeardown
178
- add_teardown_method(:added_teardown)
179
- define_method(:added_teardown) { methods_called << :added_teardown }
180
- end
181
- derived_test_case = Class.new(test_case) do
182
- define_method(:teardown) { methods_called << :teardown }
183
- define_method(:test_method) { methods_called << :test_method }
184
- end
185
- test = derived_test_case.new(:test_method)
186
- test_result = Test::Unit::TestResult.new
187
- test.run(test_result) {}
188
- assert test_result.passed?
189
- assert_equal [:setup_with_fixtures, :test_method, :teardown, :added_teardown, :teardown_with_fixtures], test.methods_called
190
- end
191
-
192
- end