rr 1.1.2 → 3.0.2
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 +5 -5
- data/Appraisals +3 -43
- data/CHANGES.md +93 -0
- data/CREDITS.md +5 -0
- data/Gemfile +1 -17
- data/README.md +29 -32
- data/Rakefile +42 -40
- data/doc/02_syntax_comparison.md +1 -0
- data/lib/rr/class_instance_method_defined.rb +1 -1
- data/lib/rr/core_ext/array.rb +2 -0
- data/lib/rr/core_ext/hash.rb +2 -0
- data/lib/rr/deprecations.rb +97 -0
- data/lib/rr/double.rb +28 -10
- data/lib/rr/double_definitions/double_definition.rb +39 -16
- data/lib/rr/double_definitions/double_definition_create.rb +5 -5
- data/lib/rr/double_definitions/double_definition_create_blank_slate.rb +10 -4
- data/lib/rr/double_definitions/double_injections/any_instance_of.rb +1 -1
- data/lib/rr/double_definitions/double_injections/instance.rb +2 -2
- data/lib/rr/double_definitions/strategies/strategy.rb +27 -8
- data/lib/rr/double_definitions/strategies/verification/mock.rb +8 -2
- data/lib/rr/double_matches.rb +4 -3
- data/lib/rr/dsl.rb +152 -0
- data/lib/rr/expectations/any_argument_expectation.rb +4 -4
- data/lib/rr/expectations/argument_equality_expectation.rb +43 -5
- data/lib/rr/injections/double_injection.rb +85 -26
- data/lib/rr/injections/method_missing_injection.rb +37 -6
- data/lib/rr/integrations/minitest_4.rb +1 -1
- data/lib/rr/integrations/minitest_4_active_support.rb +1 -1
- data/lib/rr/integrations/rspec/invocation_matcher.rb +0 -8
- data/lib/rr/integrations/rspec_2.rb +20 -2
- data/lib/rr/keyword_arguments.rb +15 -0
- data/lib/rr/method_dispatches/base_method_dispatch.rb +22 -5
- data/lib/rr/method_dispatches/method_dispatch.rb +21 -10
- data/lib/rr/method_dispatches/method_missing_dispatch.rb +14 -5
- data/lib/rr/recorded_call.rb +35 -0
- data/lib/rr/recorded_calls.rb +23 -9
- data/lib/rr/space.rb +15 -5
- data/lib/rr/spy_verification.rb +13 -5
- data/lib/rr/version.rb +1 -1
- data/lib/rr/wildcard_matchers.rb +10 -10
- data/lib/rr/without_autohook.rb +7 -14
- data/rr.gemspec +8 -3
- data/spec/defines_spec_suite_tasks.rb +12 -0
- data/spec/global_helper.rb +5 -0
- data/spec/spec_suite_configuration.rb +1 -7
- data/spec/suites.yml +0 -14
- data/spec/suites/rspec_2/functional/any_instance_of_spec.rb +133 -33
- data/spec/suites/rspec_2/functional/dont_allow_spec.rb +13 -8
- data/spec/suites/rspec_2/functional/mock_bang_spec.rb +20 -0
- data/spec/suites/rspec_2/functional/mock_instance_of_spec.rb +14 -0
- data/spec/suites/rspec_2/functional/mock_instance_of_strong_spec.rb +15 -0
- data/spec/suites/rspec_2/functional/mock_proxy_instance_of_spec.rb +15 -0
- data/spec/suites/rspec_2/functional/mock_proxy_spec.rb +14 -0
- data/spec/suites/rspec_2/functional/mock_spec.rb +8 -232
- data/spec/suites/rspec_2/functional/mock_strong_spec.rb +14 -0
- data/spec/suites/rspec_2/functional/received_spec.rb +16 -0
- data/spec/suites/rspec_2/functional/spy_spec.rb +89 -28
- data/spec/suites/rspec_2/functional/stub_bang_spec.rb +20 -0
- data/spec/suites/rspec_2/functional/stub_instance_of_spec.rb +15 -0
- data/spec/suites/rspec_2/functional/stub_instance_of_strong_spec.rb +15 -0
- data/spec/suites/rspec_2/functional/stub_proxy_instance_of_spec.rb +16 -0
- data/spec/suites/rspec_2/functional/stub_proxy_spec.rb +45 -0
- data/spec/suites/rspec_2/functional/stub_spec.rb +42 -161
- data/spec/suites/rspec_2/functional/stub_strong_spec.rb +15 -0
- data/spec/suites/rspec_2/helper.rb +2 -2
- data/spec/suites/rspec_2/support/mixins/double_definition_creator_helpers.rb +173 -0
- data/spec/suites/rspec_2/support/mixins/mock_definition_creator_helpers.rb +45 -0
- data/spec/suites/rspec_2/support/mixins/proxy_definition_creator_helpers.rb +33 -0
- data/spec/suites/rspec_2/support/mixins/stub_creator_helpers.rb +43 -0
- data/spec/suites/rspec_2/support/mixins/stub_definition_creator_helpers.rb +45 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/argument_expectations_with_never_called_qualifier.rb +39 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/argument_expectations_with_times_called_qualifier.rb +50 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/argument_expectations_without_qualifiers.rb +131 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/dont_allow.rb +148 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/mock_instance_of.rb +26 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/mock_instance_of_strong.rb +28 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/mock_proxy.rb +11 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/mock_strong.rb +37 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/mocking.rb +107 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/stub_instance_of.rb +32 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/stub_instance_of_strong.rb +39 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/stub_proxy.rb +11 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/stub_strong.rb +37 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/stubbing.rb +57 -0
- data/spec/suites/rspec_2/support/shared_examples/double_definition_creators/array_flatten_bug.rb +35 -0
- data/spec/suites/rspec_2/support/shared_examples/double_definition_creators/block_form.rb +31 -0
- data/spec/suites/rspec_2/support/shared_examples/double_definition_creators/comparing_arity.rb +63 -0
- data/spec/suites/rspec_2/support/shared_examples/double_definition_creators/object_is_proxy.rb +43 -0
- data/spec/suites/rspec_2/support/shared_examples/double_definition_creators/sequential_invocations.rb +26 -0
- data/spec/suites/rspec_2/support/shared_examples/double_definition_creators/setting_implementation.rb +51 -0
- data/spec/suites/rspec_2/support/shared_examples/double_definition_creators/yields.rb +81 -0
- data/spec/suites/rspec_2/unit/core_ext/enumerable_spec.rb +0 -28
- data/spec/suites/rspec_2/unit/deprecations_spec.rb +27 -0
- data/spec/suites/rspec_2/unit/double_definitions/double_definition_create_spec.rb +18 -18
- data/spec/suites/rspec_2/unit/dsl/double_creators_spec.rb +133 -0
- data/spec/suites/rspec_2/unit/dsl/space_spec.rb +99 -0
- data/spec/suites/rspec_2/unit/dsl/wildcard_matchers_spec.rb +67 -0
- data/spec/suites/rspec_2/unit/expectations/any_argument_expectation_spec.rb +9 -9
- data/spec/suites/rspec_2/unit/expectations/argument_equality_expectation_spec.rb +21 -21
- data/spec/suites/rspec_2/unit/expectations/boolean_argument_equality_expectation_spec.rb +4 -4
- data/spec/suites/rspec_2/unit/expectations/hash_including_argument_equality_expectation_spec.rb +31 -21
- data/spec/suites/rspec_2/unit/injections/double_injection/double_injection_spec.rb +0 -12
- data/spec/suites/rspec_2/unit/integrations/rspec_spec.rb +4 -19
- data/spec/suites/rspec_2/unit/space_spec.rb +7 -4
- data/spec/suites/rspec_2/unit/spy_verification_spec.rb +1 -1
- data/spec/support/adapter.rb +1 -1
- data/spec/support/adapter_tests/rspec.rb +19 -15
- data/spec/support/project/generator.rb +0 -4
- metadata +112 -57
- data/gemfiles/ruby_18_rspec_1.gemfile +0 -14
- data/gemfiles/ruby_18_rspec_1.gemfile.lock +0 -38
- data/gemfiles/ruby_18_rspec_1_rails_2.gemfile +0 -18
- data/gemfiles/ruby_18_rspec_1_rails_2.gemfile.lock +0 -64
- data/gemfiles/ruby_19_rspec_2_rails_3.gemfile +0 -15
- data/gemfiles/ruby_19_rspec_2_rails_3.gemfile.lock +0 -123
- data/lib/rr/adapters.rb +0 -34
- data/lib/rr/adapters/rr_methods.rb +0 -142
- data/lib/rr/integrations/rspec_1.rb +0 -46
- data/lib/rr/integrations/test_unit_1.rb +0 -63
- data/lib/rr/integrations/test_unit_2.rb +0 -17
- data/lib/rr/integrations/test_unit_200.rb +0 -27
- data/lib/rr/integrations/test_unit_200_active_support.rb +0 -25
- data/lib/rr/integrations/test_unit_2_active_support.rb +0 -38
- data/lib/rr/proc_from_block.rb +0 -11
- data/spec/suites/rspec_1/helper.rb +0 -24
- data/spec/suites/rspec_1/integration/rspec_1_spec.rb +0 -93
- data/spec/suites/rspec_1/integration/test_unit_1_spec.rb +0 -102
- data/spec/suites/rspec_1/integration/test_unit_2_spec.rb +0 -109
- data/spec/suites/rspec_1/spec_helper.rb +0 -3
- data/spec/suites/rspec_1_rails_2/integration/astc_rails_2_spec.rb +0 -141
- data/spec/suites/rspec_1_rails_2/integration/rspec_1_rails_2_spec.rb +0 -132
- data/spec/suites/rspec_1_rails_2/integration/test_unit_1_rails_2_spec.rb +0 -141
- data/spec/suites/rspec_1_rails_2/integration/test_unit_2_rails_2_spec.rb +0 -148
- data/spec/suites/rspec_1_rails_2/spec_helper.rb +0 -3
- data/spec/suites/rspec_2/functional/dsl_spec.rb +0 -13
- data/spec/suites/rspec_2/functional/instance_of_spec.rb +0 -14
- data/spec/suites/rspec_2/functional/proxy_spec.rb +0 -136
- data/spec/suites/rspec_2/functional/strong_spec.rb +0 -79
- data/spec/suites/rspec_2/integration/rspec_2_spec.rb +0 -133
- data/spec/suites/rspec_2/integration/test_unit_200_spec.rb +0 -102
- data/spec/suites/rspec_2/integration/test_unit_2_spec.rb +0 -109
- data/spec/suites/rspec_2/unit/adapters/rr_methods/double_creators_spec.rb +0 -135
- data/spec/suites/rspec_2/unit/adapters/rr_methods/space_spec.rb +0 -101
- data/spec/suites/rspec_2/unit/adapters/rr_methods/wildcard_matchers_spec.rb +0 -69
- data/spec/suites/rspec_2/unit/proc_from_block_spec.rb +0 -14
- data/spec/suites/rspec_2_rails_3/integration/astc_rails_3_spec.rb +0 -141
- data/spec/suites/rspec_2_rails_3/integration/minitest_4_rails_3_spec.rb +0 -148
- data/spec/suites/rspec_2_rails_3/integration/rspec_2_rails_3_spec.rb +0 -172
- data/spec/suites/rspec_2_rails_3/integration/test_unit_200_rails_3_spec.rb +0 -141
- data/spec/suites/rspec_2_rails_3/integration/test_unit_2_rails_3_spec.rb +0 -148
- data/spec/suites/rspec_2_rails_3/spec_helper.rb +0 -3
- data/spec/suites/rspec_2_rails_4/integration/astc_rails_4_spec.rb +0 -142
- data/spec/suites/rspec_2_rails_4/integration/minitest_4_rails_4_spec.rb +0 -149
- data/spec/suites/rspec_2_rails_4/integration/rspec_2_rails_4_spec.rb +0 -173
- data/spec/suites/rspec_2_rails_4/integration/test_unit_200_rails_4_spec.rb +0 -142
- data/spec/suites/rspec_2_rails_4/integration/test_unit_2_rails_4_spec.rb +0 -149
- data/spec/suites/rspec_2_rails_4/spec_helper.rb +0 -3
@@ -1,27 +0,0 @@
|
|
1
|
-
module RR
|
2
|
-
module Integrations
|
3
|
-
class TestUnit200
|
4
|
-
def initialize
|
5
|
-
@mt4_adapter = RR.adapters_by_name[:MiniTest4]
|
6
|
-
@tu_adapter = RR.adapters_by_name[:TestUnit1]
|
7
|
-
end
|
8
|
-
|
9
|
-
def name
|
10
|
-
'Test::Unit 2.0.0'
|
11
|
-
end
|
12
|
-
|
13
|
-
def applies?
|
14
|
-
@mt4_adapter.applies? &&
|
15
|
-
defined?(::Test::Unit) &&
|
16
|
-
!@tu_adapter.has_test_unit_version? &&
|
17
|
-
@tu_adapter.test_unit_just_wraps_minitest?
|
18
|
-
end
|
19
|
-
|
20
|
-
def hook
|
21
|
-
@mt4_adapter.hook
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
RR.register_adapter TestUnit200
|
26
|
-
end
|
27
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
module RR
|
2
|
-
module Integrations
|
3
|
-
class TestUnit200ActiveSupport
|
4
|
-
def initialize
|
5
|
-
@mt4as_adapter = RR.adapters_by_name[:MiniTest4ActiveSupport]
|
6
|
-
@tu200_adapter = RR.adapters_by_name[:TestUnit200]
|
7
|
-
end
|
8
|
-
|
9
|
-
def name
|
10
|
-
"#{@tu200_adapter.name} + ActiveSupport"
|
11
|
-
end
|
12
|
-
|
13
|
-
def applies?
|
14
|
-
@tu200_adapter.applies? && defined?(::ActiveSupport::TestCase)
|
15
|
-
end
|
16
|
-
|
17
|
-
def hook
|
18
|
-
@mt4as_adapter.hook
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
RR.register_adapter TestUnit200ActiveSupport
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
@@ -1,38 +0,0 @@
|
|
1
|
-
module RR
|
2
|
-
module Integrations
|
3
|
-
class TestUnit2ActiveSupport
|
4
|
-
def initialize
|
5
|
-
@tu2_adapter = RR.adapters_by_name[:TestUnit2]
|
6
|
-
end
|
7
|
-
|
8
|
-
def name
|
9
|
-
"#{@tu2_adapter.name} + ActiveSupport"
|
10
|
-
end
|
11
|
-
|
12
|
-
def applies?
|
13
|
-
@tu2_adapter.applies? &&
|
14
|
-
defined?(::ActiveSupport::TestCase)
|
15
|
-
end
|
16
|
-
|
17
|
-
def hook
|
18
|
-
RR.trim_backtrace = true
|
19
|
-
RR.overridden_error_class = ::Test::Unit::AssertionFailedError
|
20
|
-
|
21
|
-
::ActiveSupport::TestCase.class_eval do
|
22
|
-
include RR::Adapters::RRMethods
|
23
|
-
include TestUnit1::Mixin
|
24
|
-
|
25
|
-
setup do
|
26
|
-
RR.reset
|
27
|
-
end
|
28
|
-
|
29
|
-
teardown do
|
30
|
-
RR.verify
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
RR.register_adapter TestUnit2ActiveSupport
|
37
|
-
end
|
38
|
-
end
|
data/lib/rr/proc_from_block.rb
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
require 'spec/autorun'
|
2
|
-
|
3
|
-
require 'rr'
|
4
|
-
|
5
|
-
module ExampleMethods
|
6
|
-
def eigen(object)
|
7
|
-
class << object; self; end
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
module ExampleGroupMethods
|
12
|
-
def macro(name, &implementation)
|
13
|
-
(class << self; self; end).class_eval do
|
14
|
-
define_method(name, &implementation)
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
Spec::Runner.configure do |c|
|
20
|
-
c.include ExampleMethods
|
21
|
-
c.extend ExampleGroupMethods
|
22
|
-
end
|
23
|
-
|
24
|
-
Dir[ File.expand_path('../shared/*.rb', __FILE__) ].each {|fn| require fn }
|
@@ -1,93 +0,0 @@
|
|
1
|
-
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
-
|
3
|
-
describe 'Integration with RSpec 1' do
|
4
|
-
include IntegrationTests::RubyRSpec
|
5
|
-
|
6
|
-
def configure_project_generator(project_generator)
|
7
|
-
super
|
8
|
-
project_generator.configure do |project|
|
9
|
-
project.rspec_version = 1
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
def self.including_the_adapter_manually_works
|
14
|
-
specify "including the adapter manually works" do
|
15
|
-
project = generate_project do |project|
|
16
|
-
project.add_to_prelude <<-EOT
|
17
|
-
Spec::Runner.configure do |c|
|
18
|
-
c.mock_with :rr
|
19
|
-
end
|
20
|
-
EOT
|
21
|
-
end
|
22
|
-
project.add_test_file do |file|
|
23
|
-
file.add_working_test_case_with_adapter_tests do |test_case|
|
24
|
-
test_case.add_to_body <<-EOT
|
25
|
-
it 'loads the correct adapters' do
|
26
|
-
assert_adapters_loaded #{adapters_that_should_be_loaded.inspect}
|
27
|
-
end
|
28
|
-
EOT
|
29
|
-
end
|
30
|
-
end
|
31
|
-
result = project.run_tests
|
32
|
-
result.should be_success
|
33
|
-
result.should_not have_errors_or_failures
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
def self.rr_hooks_into_the_test_framework_automatically
|
38
|
-
specify "RR hooks into the test framework automatically" do
|
39
|
-
project = generate_project
|
40
|
-
project.add_test_file do |file|
|
41
|
-
file.add_working_test_case
|
42
|
-
end
|
43
|
-
result = project.run_tests
|
44
|
-
result.should be_success
|
45
|
-
result.should_not have_errors_or_failures
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
context 'when Bundler is autorequiring RR' do
|
50
|
-
def configure_project_generator(project_generator)
|
51
|
-
super
|
52
|
-
project_generator.configure do |project|
|
53
|
-
project.autorequire_gems = true
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
def adapters_that_should_be_loaded
|
58
|
-
[:RSpec1]
|
59
|
-
end
|
60
|
-
|
61
|
-
including_the_adapter_manually_works
|
62
|
-
end
|
63
|
-
|
64
|
-
context 'when RR is being required manually' do
|
65
|
-
def configure_project_generator(project_generator)
|
66
|
-
super
|
67
|
-
project_generator.configure do |project|
|
68
|
-
project.autorequire_gems = false
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
def adapters_that_should_be_loaded
|
73
|
-
[:RSpec1]
|
74
|
-
end
|
75
|
-
|
76
|
-
rr_hooks_into_the_test_framework_automatically
|
77
|
-
including_the_adapter_manually_works
|
78
|
-
|
79
|
-
specify "when RR raises an error it raises a failure not an exception" do
|
80
|
-
project = generate_project
|
81
|
-
project.add_test_file do |file|
|
82
|
-
file.add_test_case do |test_case|
|
83
|
-
test_case.add_test <<-EOT
|
84
|
-
object = Object.new
|
85
|
-
mock(object).foo
|
86
|
-
EOT
|
87
|
-
end
|
88
|
-
end
|
89
|
-
result = project.run_tests
|
90
|
-
result.should fail_with_output(/1 failure/)
|
91
|
-
end
|
92
|
-
end
|
93
|
-
end
|
@@ -1,102 +0,0 @@
|
|
1
|
-
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
-
|
3
|
-
describe 'Integration with Test::Unit 1' do
|
4
|
-
include IntegrationTests::RubyTestUnit
|
5
|
-
|
6
|
-
def self.including_the_adapter_manually_works
|
7
|
-
specify "including the adapter manually works" do
|
8
|
-
project = generate_project do |project|
|
9
|
-
project.add_to_prelude <<-EOT
|
10
|
-
class Test::Unit::TestCase
|
11
|
-
include RR::Adapters::TestUnit
|
12
|
-
end
|
13
|
-
EOT
|
14
|
-
end
|
15
|
-
project.add_test_file do |file|
|
16
|
-
file.add_working_test_case_with_adapter_tests do |test_case|
|
17
|
-
test_case.add_to_body <<-EOT
|
18
|
-
def test_the_correct_adapters_are_loaded
|
19
|
-
assert_adapters_loaded #{adapters_that_should_be_loaded.inspect}
|
20
|
-
end
|
21
|
-
EOT
|
22
|
-
end
|
23
|
-
end
|
24
|
-
result = project.run_tests
|
25
|
-
result.should be_success
|
26
|
-
result.should_not have_errors_or_failures
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
def self.rr_hooks_into_the_test_framework_automatically
|
31
|
-
specify "RR hooks into the test framework automatically" do
|
32
|
-
project = generate_project
|
33
|
-
project.add_test_file do |file|
|
34
|
-
file.add_working_test_case
|
35
|
-
end
|
36
|
-
result = project.run_tests
|
37
|
-
result.should be_success
|
38
|
-
result.should_not have_errors_or_failures
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
context 'when Bundler is autorequiring RR' do
|
43
|
-
def configure_project_generator(project_generator)
|
44
|
-
super
|
45
|
-
project_generator.configure do |project|
|
46
|
-
project.autorequire_gems = true
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
def adapters_that_should_be_loaded
|
51
|
-
[:TestUnit1]
|
52
|
-
end
|
53
|
-
|
54
|
-
including_the_adapter_manually_works
|
55
|
-
end
|
56
|
-
|
57
|
-
context 'when RR is being required manually' do
|
58
|
-
def configure_project_generator(project_generator)
|
59
|
-
super
|
60
|
-
project_generator.configure do |project|
|
61
|
-
project.autorequire_gems = false
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
def adapters_that_should_be_loaded
|
66
|
-
[:TestUnit1]
|
67
|
-
end
|
68
|
-
|
69
|
-
rr_hooks_into_the_test_framework_automatically
|
70
|
-
including_the_adapter_manually_works
|
71
|
-
|
72
|
-
specify "when RR raises an error it raises a failure not an exception" do
|
73
|
-
project = generate_project
|
74
|
-
project.add_test_file do |file|
|
75
|
-
file.add_test_case do |test_case|
|
76
|
-
test_case.add_test <<-EOT
|
77
|
-
object = Object.new
|
78
|
-
mock(object).foo
|
79
|
-
EOT
|
80
|
-
end
|
81
|
-
end
|
82
|
-
result = project.run_tests
|
83
|
-
result.should fail_with_output(/1 failure/)
|
84
|
-
end
|
85
|
-
|
86
|
-
specify "throwing an error in teardown doesn't mess things up" do
|
87
|
-
project = generate_project
|
88
|
-
project.add_test_file do |file|
|
89
|
-
file.add_test_case do |test_case|
|
90
|
-
test_case.add_to_body <<-EOT
|
91
|
-
def teardown
|
92
|
-
raise 'hell'
|
93
|
-
end
|
94
|
-
EOT
|
95
|
-
test_case.add_test("") # doesn't matter
|
96
|
-
end
|
97
|
-
end
|
98
|
-
result = project.run_tests
|
99
|
-
result.should fail_with_output(/1 error/)
|
100
|
-
end
|
101
|
-
end
|
102
|
-
end
|
@@ -1,109 +0,0 @@
|
|
1
|
-
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
-
|
3
|
-
describe 'Integration with Test::Unit ~> 2.4' do
|
4
|
-
include IntegrationTests::RubyTestUnit
|
5
|
-
|
6
|
-
def configure_project_generator(project_generator)
|
7
|
-
super
|
8
|
-
project_generator.configure do |project|
|
9
|
-
project.test_unit_gem_version = '~> 2.4'
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
def self.including_the_adapter_manually_works
|
14
|
-
specify "including the adapter manually works" do
|
15
|
-
project = generate_project do |project|
|
16
|
-
project.add_to_prelude <<-EOT
|
17
|
-
class Test::Unit::TestCase
|
18
|
-
include RR::Adapters::TestUnit
|
19
|
-
end
|
20
|
-
EOT
|
21
|
-
end
|
22
|
-
project.add_test_file do |file|
|
23
|
-
file.add_working_test_case_with_adapter_tests do |test_case|
|
24
|
-
test_case.add_to_body <<-EOT
|
25
|
-
def test_the_correct_adapters_are_loaded
|
26
|
-
assert_adapters_loaded #{adapters_that_should_be_loaded.inspect}
|
27
|
-
end
|
28
|
-
EOT
|
29
|
-
end
|
30
|
-
end
|
31
|
-
result = project.run_tests
|
32
|
-
result.should be_success
|
33
|
-
result.should_not have_errors_or_failures
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
def self.rr_hooks_into_the_test_framework_automatically
|
38
|
-
specify "RR hooks into the test framework automatically" do
|
39
|
-
project = generate_project
|
40
|
-
project.add_test_file do |file|
|
41
|
-
file.add_working_test_case
|
42
|
-
end
|
43
|
-
result = project.run_tests
|
44
|
-
result.should be_success
|
45
|
-
result.should_not have_errors_or_failures
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
context 'when Bundler is autorequiring RR' do
|
50
|
-
def configure_project_generator(project_generator)
|
51
|
-
super
|
52
|
-
project_generator.configure do |project|
|
53
|
-
project.autorequire_gems = true
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
def adapters_that_should_be_loaded
|
58
|
-
[:TestUnit2]
|
59
|
-
end
|
60
|
-
|
61
|
-
including_the_adapter_manually_works
|
62
|
-
end
|
63
|
-
|
64
|
-
context 'when RR is being required manually' do
|
65
|
-
def configure_project_generator(project_generator)
|
66
|
-
super
|
67
|
-
project_generator.configure do |project|
|
68
|
-
project.autorequire_gems = false
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
def adapters_that_should_be_loaded
|
73
|
-
[:TestUnit2]
|
74
|
-
end
|
75
|
-
|
76
|
-
rr_hooks_into_the_test_framework_automatically
|
77
|
-
including_the_adapter_manually_works
|
78
|
-
|
79
|
-
specify "when RR raises an error it raises a failure not an exception" do
|
80
|
-
project = generate_project
|
81
|
-
project.add_test_file do |file|
|
82
|
-
file.add_test_case do |test_case|
|
83
|
-
test_case.add_test <<-EOT
|
84
|
-
object = Object.new
|
85
|
-
mock(object).foo
|
86
|
-
EOT
|
87
|
-
end
|
88
|
-
end
|
89
|
-
result = project.run_tests
|
90
|
-
result.should fail_with_output(/1 failure/)
|
91
|
-
end
|
92
|
-
|
93
|
-
specify "throwing an error in teardown doesn't mess things up" do
|
94
|
-
project = generate_project
|
95
|
-
project.add_test_file do |file|
|
96
|
-
file.add_test_case do |test_case|
|
97
|
-
test_case.add_to_body <<-EOT
|
98
|
-
def teardown
|
99
|
-
raise 'hell'
|
100
|
-
end
|
101
|
-
EOT
|
102
|
-
test_case.add_test("") # doesn't matter
|
103
|
-
end
|
104
|
-
end
|
105
|
-
result = project.run_tests
|
106
|
-
result.should fail_with_output(/1 error/)
|
107
|
-
end
|
108
|
-
end
|
109
|
-
end
|
@@ -1,141 +0,0 @@
|
|
1
|
-
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
-
|
3
|
-
describe 'Integration with straight ActiveSupport::TestCase and Rails 2' do
|
4
|
-
include IntegrationTests::RailsTestUnitLike
|
5
|
-
|
6
|
-
def configure_rails_project_generator(project_generator)
|
7
|
-
super
|
8
|
-
project_generator.configure do |project|
|
9
|
-
project.rails_version = 2
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
def self.including_the_adapter_manually_works
|
14
|
-
specify "including the adapter manually works" do
|
15
|
-
project = generate_project do |project|
|
16
|
-
project.add_to_prelude <<-EOT
|
17
|
-
class ActiveSupport::TestCase
|
18
|
-
include RR::Adapters::TestUnit
|
19
|
-
end
|
20
|
-
EOT
|
21
|
-
end
|
22
|
-
project.add_test_file do |file|
|
23
|
-
file.add_working_test_case_with_adapter_tests do |test_case|
|
24
|
-
test_case.add_to_body <<-EOT
|
25
|
-
def test_the_correct_adapters_are_loaded
|
26
|
-
assert_adapters_loaded #{adapters_that_should_be_loaded.inspect}
|
27
|
-
end
|
28
|
-
EOT
|
29
|
-
end
|
30
|
-
end
|
31
|
-
result = project.run_tests
|
32
|
-
result.should be_success
|
33
|
-
result.should_not have_errors_or_failures
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
def self.rr_hooks_into_the_test_framework_automatically
|
38
|
-
specify "RR hooks into the test framework automatically" do
|
39
|
-
project = generate_project
|
40
|
-
project.add_test_file do |file|
|
41
|
-
file.add_working_test_case
|
42
|
-
end
|
43
|
-
result = project.run_tests
|
44
|
-
result.should be_success
|
45
|
-
result.should_not have_errors_or_failures
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
def self.using_rr_with_cucumber_works
|
50
|
-
specify "using RR with Cucumber works" do
|
51
|
-
project_generator = build_rails_project_generator do |project_generator|
|
52
|
-
project_generator.mixin Project::Cucumber
|
53
|
-
end
|
54
|
-
project = project_generator.call
|
55
|
-
result = project.run_command_within("bundle exec cucumber")
|
56
|
-
result.should be_success
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
context 'when Bundler is autorequiring RR' do
|
61
|
-
def configure_project_generator(project_generator)
|
62
|
-
super
|
63
|
-
project_generator.configure do |project|
|
64
|
-
project.autorequire_gems = true
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
def adapters_that_should_be_loaded
|
69
|
-
[:TestUnit1]
|
70
|
-
end
|
71
|
-
|
72
|
-
including_the_adapter_manually_works
|
73
|
-
using_rr_with_cucumber_works
|
74
|
-
end
|
75
|
-
|
76
|
-
context 'when RR is being required manually' do
|
77
|
-
def configure_project_generator(project_generator)
|
78
|
-
super
|
79
|
-
project_generator.configure do |project|
|
80
|
-
project.autorequire_gems = false
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
def adapters_that_should_be_loaded
|
85
|
-
[:TestUnit1]
|
86
|
-
end
|
87
|
-
|
88
|
-
rr_hooks_into_the_test_framework_automatically
|
89
|
-
including_the_adapter_manually_works
|
90
|
-
using_rr_with_cucumber_works
|
91
|
-
|
92
|
-
specify "when RR raises an error it raises a failure not an exception" do
|
93
|
-
project = generate_project
|
94
|
-
project.add_test_file do |file|
|
95
|
-
file.add_test_case do |test_case|
|
96
|
-
test_case.add_test <<-EOT
|
97
|
-
object = Object.new
|
98
|
-
mock(object).foo
|
99
|
-
EOT
|
100
|
-
end
|
101
|
-
end
|
102
|
-
result = project.run_tests
|
103
|
-
result.should fail_with_output(/1 failure/)
|
104
|
-
end
|
105
|
-
|
106
|
-
specify "the database is properly rolled back after an RR error" do
|
107
|
-
project = generate_project do |project|
|
108
|
-
project.add_model_and_migration(:person, :people, :name => :string)
|
109
|
-
end
|
110
|
-
project.add_test_file do |file|
|
111
|
-
file.add_test_case do |test_case|
|
112
|
-
test_case.add_test <<-EOT
|
113
|
-
Person.create!(:name => 'Joe Blow')
|
114
|
-
object = Object.new
|
115
|
-
mock(object).foo
|
116
|
-
EOT
|
117
|
-
end
|
118
|
-
end
|
119
|
-
expect {
|
120
|
-
result = project.run_tests
|
121
|
-
result.should have_errors_or_failures
|
122
|
-
}.to leave_database_table_clear(project, :people)
|
123
|
-
end
|
124
|
-
|
125
|
-
specify "throwing an error in teardown doesn't mess things up" do
|
126
|
-
project = generate_project
|
127
|
-
project.add_test_file do |file|
|
128
|
-
file.add_test_case do |test_case|
|
129
|
-
test_case.add_to_body <<-EOT
|
130
|
-
def teardown
|
131
|
-
raise 'hell'
|
132
|
-
end
|
133
|
-
EOT
|
134
|
-
test_case.add_test("") # doesn't matter
|
135
|
-
end
|
136
|
-
end
|
137
|
-
result = project.run_tests
|
138
|
-
result.should fail_with_output(/1 error/)
|
139
|
-
end
|
140
|
-
end
|
141
|
-
end
|