rspec 0.8.2 → 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.
Files changed (245) hide show
  1. data/CHANGES +125 -9
  2. data/EXAMPLES.rd +50 -27
  3. data/README +14 -1
  4. data/Rakefile +95 -42
  5. data/UPGRADE +31 -0
  6. data/bin/spec +0 -1
  7. data/bin/spec_translator +6 -0
  8. data/examples/auto_spec_description_example.rb +19 -0
  9. data/examples/{setup_teardown_example.rb → before_and_after_example.rb} +6 -6
  10. data/examples/behave_as_example.rb +45 -0
  11. data/examples/custom_expectation_matchers.rb +13 -12
  12. data/examples/dynamic_spec.rb +2 -2
  13. data/examples/file_accessor_spec.rb +2 -2
  14. data/examples/greeter_spec.rb +3 -3
  15. data/examples/helper_method_example.rb +2 -2
  16. data/examples/io_processor_spec.rb +4 -4
  17. data/examples/legacy_spec.rb +10 -0
  18. data/examples/mocking_example.rb +5 -5
  19. data/examples/multi_threaded_behaviour_runner.rb +25 -0
  20. data/examples/partial_mock_example.rb +4 -4
  21. data/examples/predicate_example.rb +4 -4
  22. data/examples/priority.txt +1 -0
  23. data/examples/shared_behaviours_example.rb +31 -0
  24. data/examples/stack_spec.rb +52 -69
  25. data/examples/stubbing_example.rb +10 -10
  26. data/examples/test_case_adapter_example.rb +26 -0
  27. data/examples/test_case_spec.rb +6 -6
  28. data/lib/spec.rb +9 -4
  29. data/lib/spec/dsl.rb +10 -0
  30. data/lib/spec/dsl/behaviour.rb +189 -0
  31. data/lib/spec/dsl/behaviour_callbacks.rb +43 -0
  32. data/lib/spec/dsl/behaviour_eval.rb +170 -0
  33. data/lib/spec/dsl/behaviour_factory.rb +32 -0
  34. data/lib/spec/dsl/composite_proc_builder.rb +28 -0
  35. data/lib/spec/dsl/configuration.rb +38 -0
  36. data/lib/spec/dsl/description.rb +34 -0
  37. data/lib/spec/dsl/example.rb +114 -0
  38. data/lib/spec/dsl/example_matcher.rb +28 -0
  39. data/lib/spec/{runner/spec_should_raise_handler.rb → dsl/example_should_raise_handler.rb} +4 -4
  40. data/lib/spec/expectations.rb +0 -3
  41. data/lib/spec/expectations/differs/default.rb +0 -1
  42. data/lib/spec/expectations/extensions.rb +0 -1
  43. data/lib/spec/expectations/extensions/object.rb +10 -53
  44. data/lib/spec/expectations/handler.rb +14 -18
  45. data/lib/spec/extensions.rb +1 -0
  46. data/lib/spec/extensions/object.rb +6 -0
  47. data/lib/spec/matchers.rb +19 -21
  48. data/lib/spec/matchers/be.rb +40 -11
  49. data/lib/spec/matchers/be_close.rb +2 -2
  50. data/lib/spec/matchers/operator_matcher.rb +52 -0
  51. data/lib/spec/matchers/respond_to.rb +21 -11
  52. data/lib/spec/mocks.rb +5 -28
  53. data/lib/spec/mocks/argument_constraint_matchers.rb +12 -0
  54. data/lib/spec/mocks/argument_expectation.rb +7 -4
  55. data/lib/spec/mocks/methods.rb +11 -16
  56. data/lib/spec/mocks/mock.rb +6 -3
  57. data/lib/spec/mocks/{mock_handler.rb → proxy.rb} +4 -7
  58. data/lib/spec/mocks/space.rb +28 -0
  59. data/lib/spec/mocks/spec_methods.rb +30 -0
  60. data/lib/spec/rake/spectask.rb +23 -21
  61. data/lib/spec/rake/verify_rcov.rb +1 -0
  62. data/lib/spec/runner.rb +88 -35
  63. data/lib/spec/runner/backtrace_tweaker.rb +2 -1
  64. data/lib/spec/runner/behaviour_runner.rb +102 -0
  65. data/lib/spec/runner/command_line.rb +5 -17
  66. data/lib/spec/runner/drb_command_line.rb +2 -2
  67. data/lib/spec/runner/extensions/kernel.rb +22 -9
  68. data/lib/spec/runner/formatter.rb +4 -0
  69. data/lib/spec/runner/formatter/base_formatter.rb +63 -0
  70. data/lib/spec/runner/formatter/base_text_formatter.rb +22 -52
  71. data/lib/spec/runner/formatter/failing_behaviours_formatter.rb +25 -0
  72. data/lib/spec/runner/formatter/failing_examples_formatter.rb +22 -0
  73. data/lib/spec/runner/formatter/html_formatter.rb +74 -29
  74. data/lib/spec/runner/formatter/progress_bar_formatter.rb +6 -8
  75. data/lib/spec/runner/formatter/rdoc_formatter.rb +6 -6
  76. data/lib/spec/runner/formatter/snippet_extractor.rb +52 -0
  77. data/lib/spec/runner/formatter/specdoc_formatter.rb +6 -6
  78. data/lib/spec/runner/heckle_runner.rb +8 -7
  79. data/lib/spec/runner/option_parser.rb +136 -55
  80. data/lib/spec/runner/options.rb +26 -0
  81. data/lib/spec/runner/reporter.rb +38 -31
  82. data/lib/spec/runner/spec_parser.rb +22 -13
  83. data/lib/spec/test_case_adapter.rb +10 -0
  84. data/lib/spec/translator.rb +103 -86
  85. data/lib/spec/version.rb +7 -15
  86. data/plugins/mock_frameworks/flexmock.rb +27 -0
  87. data/plugins/mock_frameworks/mocha.rb +21 -0
  88. data/plugins/mock_frameworks/rspec.rb +18 -0
  89. data/spec/spec/dsl/behaviour_eval_spec.rb +49 -0
  90. data/spec/spec/dsl/behaviour_factory_spec.rb +30 -0
  91. data/spec/spec/dsl/behaviour_spec.rb +508 -0
  92. data/spec/spec/dsl/composite_proc_builder_spec.rb +57 -0
  93. data/spec/spec/dsl/configuration_spec.rb +43 -0
  94. data/spec/spec/dsl/description_spec.rb +51 -0
  95. data/spec/spec/dsl/example_class_spec.rb +24 -0
  96. data/spec/spec/dsl/example_instance_spec.rb +140 -0
  97. data/spec/spec/dsl/example_should_raise_spec.rb +137 -0
  98. data/spec/spec/dsl/predicate_matcher_spec.rb +21 -0
  99. data/spec/spec/dsl/shared_behaviour_spec.rb +186 -0
  100. data/spec/spec/expectations/differs/default_spec.rb +12 -12
  101. data/spec/spec/expectations/extensions/object_spec.rb +10 -10
  102. data/spec/spec/expectations/fail_with_spec.rb +20 -20
  103. data/spec/spec/matchers/be_close_spec.rb +37 -31
  104. data/spec/spec/matchers/be_spec.rb +50 -41
  105. data/spec/spec/matchers/change_spec.rb +54 -54
  106. data/spec/spec/matchers/description_generation_spec.rb +43 -31
  107. data/spec/spec/matchers/eql_spec.rb +24 -37
  108. data/spec/spec/matchers/equal_spec.rb +24 -37
  109. data/spec/spec/matchers/exist_spec.rb +48 -0
  110. data/spec/spec/matchers/handler_spec.rb +36 -23
  111. data/spec/spec/matchers/has_spec.rb +8 -8
  112. data/spec/spec/matchers/have_spec.rb +38 -38
  113. data/spec/spec/matchers/include_spec.rb +6 -6
  114. data/spec/spec/matchers/match_spec.rb +8 -8
  115. data/spec/spec/matchers/matcher_methods_spec.rb +24 -31
  116. data/spec/spec/matchers/raise_error_spec.rb +34 -34
  117. data/spec/spec/matchers/respond_to_spec.rb +32 -8
  118. data/spec/spec/matchers/satisfy_spec.rb +6 -6
  119. data/spec/spec/matchers/should_===_spec.rb +38 -0
  120. data/spec/spec/matchers/should_==_spec.rb +37 -0
  121. data/spec/spec/matchers/should_=~_spec.rb +36 -0
  122. data/spec/spec/matchers/throw_symbol_spec.rb +47 -55
  123. data/spec/spec/mocks/any_number_of_times_spec.rb +16 -21
  124. data/spec/spec/mocks/argument_expectation_spec.rb +3 -3
  125. data/spec/spec/mocks/at_least_spec.rb +30 -30
  126. data/spec/spec/mocks/at_most_spec.rb +53 -57
  127. data/spec/spec/mocks/bug_report_10260_spec.rb +8 -0
  128. data/spec/spec/mocks/bug_report_7611_spec.rb +3 -3
  129. data/spec/spec/mocks/bug_report_7805_spec.rb +3 -3
  130. data/spec/spec/mocks/bug_report_8165_spec.rb +5 -5
  131. data/spec/spec/mocks/bug_report_8302_spec.rb +5 -5
  132. data/spec/spec/mocks/failing_mock_argument_constraints_spec.rb +26 -27
  133. data/spec/spec/mocks/mock_ordering_spec.rb +19 -15
  134. data/spec/spec/mocks/mock_space_spec.rb +54 -0
  135. data/spec/spec/mocks/mock_spec.rb +111 -141
  136. data/spec/spec/mocks/multiple_return_value_spec.rb +48 -48
  137. data/spec/spec/mocks/null_object_mock_spec.rb +10 -10
  138. data/spec/spec/mocks/once_counts_spec.rb +32 -35
  139. data/spec/spec/mocks/options_hash_spec.rb +12 -10
  140. data/spec/spec/mocks/partial_mock_spec.rb +15 -15
  141. data/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +24 -22
  142. data/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +19 -19
  143. data/spec/spec/mocks/precise_counts_spec.rb +28 -32
  144. data/spec/spec/mocks/record_messages_spec.rb +10 -10
  145. data/spec/spec/mocks/stub_spec.rb +45 -45
  146. data/spec/spec/mocks/twice_counts_spec.rb +21 -21
  147. data/spec/spec/package/bin_spec_spec.rb +12 -0
  148. data/spec/spec/runner/behaviour_runner_spec.rb +114 -0
  149. data/spec/spec/runner/command_line_spec.rb +8 -8
  150. data/spec/spec/runner/context_matching_spec.rb +14 -15
  151. data/spec/spec/runner/drb_command_line_spec.rb +12 -12
  152. data/spec/spec/runner/execution_context_spec.rb +8 -29
  153. data/spec/spec/runner/extensions/kernel_spec.rb +36 -0
  154. data/spec/spec/runner/formatter/failing_behaviours_formatter_spec.rb +27 -0
  155. data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +28 -0
  156. data/spec/spec/runner/formatter/html_formatter_spec.rb +9 -8
  157. data/spec/spec/runner/formatter/progress_bar_formatter_dry_run_spec.rb +6 -6
  158. data/spec/spec/runner/formatter/progress_bar_formatter_failure_dump_spec.rb +10 -10
  159. data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +22 -27
  160. data/spec/spec/runner/formatter/rdoc_formatter_dry_run_spec.rb +6 -5
  161. data/spec/spec/runner/formatter/rdoc_formatter_spec.rb +17 -17
  162. data/spec/spec/runner/formatter/snippet_extractor_spec.rb +11 -0
  163. data/spec/spec/runner/formatter/specdoc_formatter_dry_run_spec.rb +6 -6
  164. data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +17 -17
  165. data/spec/spec/runner/heckle_runner_spec.rb +21 -21
  166. data/spec/spec/runner/heckler_spec.rb +5 -5
  167. data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +12 -12
  168. data/spec/spec/runner/object_ext_spec.rb +3 -3
  169. data/spec/spec/runner/option_parser_spec.rb +171 -102
  170. data/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +21 -12
  171. data/spec/spec/runner/reporter_spec.rb +106 -97
  172. data/spec/spec/runner/spec_matcher_spec.rb +46 -51
  173. data/spec/spec/runner/spec_parser_spec.rb +72 -16
  174. data/spec/spec/spec_classes.rb +12 -3
  175. data/spec/spec/translator_spec.rb +165 -36
  176. metadata +66 -76
  177. data/RELEASE-PLAN +0 -117
  178. data/examples/auto_spec_name_generation_example.rb +0 -18
  179. data/lib/spec/callback.rb +0 -11
  180. data/lib/spec/callback/callback_container.rb +0 -60
  181. data/lib/spec/callback/extensions/module.rb +0 -24
  182. data/lib/spec/callback/extensions/object.rb +0 -37
  183. data/lib/spec/deprecated.rb +0 -3
  184. data/lib/spec/expectations/extensions/proc.rb +0 -57
  185. data/lib/spec/expectations/should.rb +0 -5
  186. data/lib/spec/expectations/should/base.rb +0 -64
  187. data/lib/spec/expectations/should/change.rb +0 -69
  188. data/lib/spec/expectations/should/have.rb +0 -128
  189. data/lib/spec/expectations/should/not.rb +0 -74
  190. data/lib/spec/expectations/should/should.rb +0 -81
  191. data/lib/spec/expectations/sugar.rb +0 -47
  192. data/lib/spec/runner/context.rb +0 -154
  193. data/lib/spec/runner/context_eval.rb +0 -142
  194. data/lib/spec/runner/context_runner.rb +0 -55
  195. data/lib/spec/runner/execution_context.rb +0 -17
  196. data/lib/spec/runner/spec_matcher.rb +0 -25
  197. data/lib/spec/runner/specification.rb +0 -114
  198. data/spec/spec/callback/callback_container_spec.rb +0 -27
  199. data/spec/spec/callback/module_spec.rb +0 -37
  200. data/spec/spec/callback/object_spec.rb +0 -90
  201. data/spec/spec/callback/object_with_class_callback_spec.rb +0 -19
  202. data/spec/spec/expectations/should/should_==_spec.rb +0 -19
  203. data/spec/spec/expectations/should/should_=~_spec.rb +0 -13
  204. data/spec/spec/expectations/should/should_be_a_kind_of_spec.rb +0 -21
  205. data/spec/spec/expectations/should/should_be_an_instance_of_spec.rb +0 -30
  206. data/spec/spec/expectations/should/should_be_arbitrary_predicate_spec.rb +0 -81
  207. data/spec/spec/expectations/should/should_be_close_spec.rb +0 -18
  208. data/spec/spec/expectations/should/should_be_comparison_operator_spec.rb +0 -44
  209. data/spec/spec/expectations/should/should_be_false_spec.rb +0 -39
  210. data/spec/spec/expectations/should/should_be_spec.rb +0 -11
  211. data/spec/spec/expectations/should/should_be_true_spec.rb +0 -27
  212. data/spec/spec/expectations/should/should_change_spec.rb +0 -184
  213. data/spec/spec/expectations/should/should_eql_spec.rb +0 -11
  214. data/spec/spec/expectations/should/should_equal_spec.rb +0 -11
  215. data/spec/spec/expectations/should/should_have_at_least_spec.rb +0 -53
  216. data/spec/spec/expectations/should/should_have_at_most_spec.rb +0 -45
  217. data/spec/spec/expectations/should/should_have_key_spec.rb +0 -21
  218. data/spec/spec/expectations/should/should_have_spec.rb +0 -64
  219. data/spec/spec/expectations/should/should_include_spec.rb +0 -59
  220. data/spec/spec/expectations/should/should_match_spec.rb +0 -25
  221. data/spec/spec/expectations/should/should_not_==_spec.rb +0 -15
  222. data/spec/spec/expectations/should/should_not_be_a_kind_of_spec.rb +0 -21
  223. data/spec/spec/expectations/should/should_not_be_an_instance_of_spec.rb +0 -11
  224. data/spec/spec/expectations/should/should_not_be_arbitrary_predicate_spec.rb +0 -68
  225. data/spec/spec/expectations/should/should_not_be_spec.rb +0 -11
  226. data/spec/spec/expectations/should/should_not_change_spec.rb +0 -24
  227. data/spec/spec/expectations/should/should_not_eql_spec.rb +0 -11
  228. data/spec/spec/expectations/should/should_not_equal_spec.rb +0 -11
  229. data/spec/spec/expectations/should/should_not_have_key_spec.rb +0 -15
  230. data/spec/spec/expectations/should/should_not_include_spec.rb +0 -58
  231. data/spec/spec/expectations/should/should_not_match_spec.rb +0 -11
  232. data/spec/spec/expectations/should/should_not_raise_spec.rb +0 -75
  233. data/spec/spec/expectations/should/should_not_respond_to_spec.rb +0 -15
  234. data/spec/spec/expectations/should/should_not_throw_spec.rb +0 -35
  235. data/spec/spec/expectations/should/should_raise_spec.rb +0 -66
  236. data/spec/spec/expectations/should/should_respond_to_spec.rb +0 -15
  237. data/spec/spec/expectations/should/should_satisfy_spec.rb +0 -35
  238. data/spec/spec/expectations/should/should_throw_spec.rb +0 -27
  239. data/spec/spec/runner/context_runner_spec.rb +0 -100
  240. data/spec/spec/runner/context_spec.rb +0 -405
  241. data/spec/spec/runner/kernel_ext_spec.rb +0 -16
  242. data/spec/spec/runner/spec_name_generation_spec.rb +0 -102
  243. data/spec/spec/runner/specification_class_spec.rb +0 -72
  244. data/spec/spec/runner/specification_instance_spec.rb +0 -160
  245. data/spec/spec/runner/specification_should_raise_spec.rb +0 -136
@@ -0,0 +1,12 @@
1
+ require "#{File.dirname(__FILE__)}/../../spec_helper"
2
+
3
+ describe "The bin/spec script" do
4
+ it "should have no warnings" do
5
+ spec_path = "#{File.dirname(__FILE__)}/../../../bin/spec"
6
+ output = nil
7
+ IO.popen("ruby -w #{spec_path} --help 2>&1") do |io|
8
+ output = io.read
9
+ end
10
+ output.should_not =~ /warning/n
11
+ end
12
+ end
@@ -0,0 +1,114 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
+
3
+ module Spec
4
+ module Runner
5
+ describe BehaviourRunner do
6
+
7
+ it "should only run behaviours with at least one example" do
8
+ desired_context = mock("desired context")
9
+ desired_context.should_receive(:run)
10
+ desired_context.should_receive(:retain_examples_matching!)
11
+ desired_context.should_receive(:number_of_examples).twice.and_return(1)
12
+
13
+ other_context = mock("other context")
14
+ other_context.should_receive(:run).never
15
+ other_context.should_receive(:retain_examples_matching!)
16
+ other_context.should_receive(:number_of_examples).and_return(0)
17
+
18
+ reporter = mock("reporter")
19
+ options = Options.new
20
+ options.reporter = reporter
21
+ options.examples = ["desired context legal spec"]
22
+
23
+ runner = Spec::Runner::BehaviourRunner.new(options)
24
+ runner.add_behaviour(desired_context)
25
+ runner.add_behaviour(other_context)
26
+ reporter.should_receive(:start)
27
+ reporter.should_receive(:end)
28
+ reporter.should_receive(:dump)
29
+ runner.run([], false)
30
+ end
31
+
32
+ it "should dump even if Interrupt exception is occurred" do
33
+ behaviour = Spec::DSL::Behaviour.new("context") do
34
+ it "no error" do
35
+ end
36
+
37
+ it "should interrupt" do
38
+ raise Interrupt
39
+ end
40
+ end
41
+
42
+ reporter = mock("reporter")
43
+ reporter.should_receive(:start)
44
+ reporter.should_receive(:add_behaviour).with("context")
45
+ reporter.should_receive(:example_started).twice
46
+ reporter.should_receive(:example_finished).twice
47
+ reporter.should_receive(:rspec_verify)
48
+ reporter.should_receive(:rspec_reset)
49
+ reporter.should_receive(:end)
50
+ reporter.should_receive(:dump)
51
+
52
+ options = Options.new
53
+ options.reporter = reporter
54
+ runner = Spec::Runner::BehaviourRunner.new(options)
55
+ runner.add_behaviour(behaviour)
56
+ runner.run([], false)
57
+ end
58
+
59
+ it "should heckle when options have heckle_runner" do
60
+ context = mock("context", :null_object => true)
61
+ context.should_receive(:number_of_examples).twice.and_return(1)
62
+ context.should_receive(:run).and_return(0)
63
+
64
+ reporter = mock("reporter")
65
+ reporter.should_receive(:start).with(1)
66
+ reporter.should_receive(:end)
67
+ reporter.should_receive(:dump).and_return(0)
68
+
69
+ heckle_runner = mock("heckle_runner")
70
+ heckle_runner.should_receive(:heckle_with)
71
+
72
+ options = Options.new
73
+ options.reporter = reporter
74
+ options.heckle_runner = heckle_runner
75
+
76
+ runner = Spec::Runner::BehaviourRunner.new(options)
77
+ runner.add_behaviour(context)
78
+ runner.run([], false)
79
+ end
80
+
81
+ it "should run specs backward if options.reverse is true" do
82
+ options = Options.new
83
+ options.reverse = true
84
+
85
+ reporter = mock("reporter")
86
+ reporter.should_receive(:start).with(3)
87
+ reporter.should_receive(:end)
88
+ reporter.should_receive(:dump).and_return(0)
89
+ options.reporter = reporter
90
+
91
+ runner = Spec::Runner::BehaviourRunner.new(options)
92
+ c1 = mock("c1")
93
+ c1.should_receive(:number_of_examples).twice.and_return(1)
94
+
95
+ c2 = mock("c2")
96
+ c2.should_receive(:number_of_examples).twice.and_return(2)
97
+ c2.should_receive(:run) do
98
+ c1.should_receive(:run)
99
+ end
100
+
101
+ runner.add_behaviour(c1)
102
+ runner.add_behaviour(c2)
103
+
104
+ runner.run([], false)
105
+ end
106
+
107
+ it "should yield global configuration" do
108
+ Spec::Runner.configure do |config|
109
+ config.should equal(Spec::Runner.configuration)
110
+ end
111
+ end
112
+ end
113
+ end
114
+ end
@@ -1,32 +1,32 @@
1
1
  require 'stringio'
2
- context "CommandLine" do
3
- specify "should run directory" do
2
+ describe "CommandLine" do
3
+ it "should run directory" do
4
4
  file = File.dirname(__FILE__) + '/../../../examples'
5
5
  err = StringIO.new
6
6
  out = StringIO.new
7
7
  Spec::Runner::CommandLine.run([file], err, out, false, true)
8
8
 
9
9
  out.rewind
10
- out.read.should =~ /60 specifications, 0 failures/n
10
+ out.read.should =~ /74 examples, 0 failures/n
11
11
  end
12
12
 
13
- specify "should run file" do
13
+ it "should run file" do
14
14
  file = File.dirname(__FILE__) + '/../../../examples/io_processor_spec.rb'
15
15
  err = StringIO.new
16
16
  out = StringIO.new
17
17
  Spec::Runner::CommandLine.run([file], err, out, false, true)
18
18
 
19
19
  out.rewind
20
- out.read.should =~ /2 specifications, 0 failures/n
20
+ out.read.should =~ /2 examples, 0 failures/n
21
21
  end
22
22
 
23
- specify "should raise when file does not exist" do
23
+ it "should raise when file does not exist" do
24
24
  file = File.dirname(__FILE__) + '/doesntexist'
25
25
  err = StringIO.new
26
26
  out = StringIO.new
27
27
 
28
28
  lambda {
29
29
  Spec::Runner::CommandLine.run([file], err, out, false, true)
30
- }.should_raise
30
+ }.should raise_error
31
31
  end
32
- end
32
+ end
@@ -1,27 +1,26 @@
1
1
  require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
2
 
3
3
  module Spec
4
- module Runner
5
- context "ContextMatching" do
4
+ module DSL
5
+ describe "ContextMatching" do
6
6
 
7
- setup do
7
+ before(:each) do
8
8
  @formatter = Spec::Mocks::Mock.new("formatter")
9
- @context = Context.new("context") {}
10
- @context_eval = @context.instance_eval { @context_eval_module }
9
+ @behaviour = Behaviour.new("context") {}
11
10
  end
12
11
 
13
- specify "run all specs when spec is not specified" do
14
- @context_eval.specify("spec1") {}
15
- @context_eval.specify("spec2") {}
16
- @context.run_single_spec("context")
17
- @context.number_of_specs.should_equal(2)
12
+ it "run all specs when spec is not specified" do
13
+ @behaviour.it("spec1") {}
14
+ @behaviour.it("spec2") {}
15
+ @behaviour.retain_examples_matching!(["context"])
16
+ @behaviour.number_of_examples.should == 2
18
17
  end
19
18
 
20
- specify "should only run specified specs when specified" do
21
- @context_eval.specify("spec1") {}
22
- @context_eval.specify("spec2") {}
23
- @context.run_single_spec("context spec1")
24
- @context.number_of_specs.should_equal(1)
19
+ it "should only run specified examples when specified" do
20
+ @behaviour.it("spec1") {}
21
+ @behaviour.it("spec2") {}
22
+ @behaviour.retain_examples_matching!(["context spec1"])
23
+ @behaviour.number_of_examples.should == 1
25
24
  end
26
25
  end
27
26
  end
@@ -1,10 +1,10 @@
1
1
  require 'stringio'
2
2
  require 'rbconfig'
3
3
 
4
- context "DrbCommandLine without running local server" do
4
+ describe "DrbCommandLine without running local server" do
5
5
 
6
6
  unless Config::CONFIG['ruby_install_name'] == 'jruby'
7
- specify "should print error when there is no running local server" do
7
+ it "should print error when there is no running local server" do
8
8
  err = StringIO.new
9
9
  out = StringIO.new
10
10
  Spec::Runner::DrbCommandLine.run(['--version'], err, out, false)
@@ -15,30 +15,30 @@ context "DrbCommandLine without running local server" do
15
15
  end
16
16
  end
17
17
 
18
- context "DrbCommandLine with local server" do
18
+ describe "DrbCommandLine with local server" do
19
19
 
20
20
  unless Config::CONFIG['ruby_install_name'] == 'jruby'
21
- context_setup do
21
+ before :all do
22
22
  create_dummy_spec_file
23
23
  DRb.start_service("druby://localhost:8989", Spec::Runner::CommandLine)
24
24
  end
25
25
 
26
- context_teardown do
26
+ after :all do
27
27
  DRb.stop_service
28
28
  File.delete(@dummy_spec_filename)
29
29
  end
30
30
 
31
- specify "should run against local server" do
31
+ it "should run against local server" do
32
32
  out = run_spec_via_druby(['--version'])
33
33
  out.should =~ /RSpec/n
34
34
  end
35
35
 
36
- specify "should output green colorized text when running with --colour option" do
36
+ it "should output green colorized text when running with --colour option" do
37
37
  out = run_spec_via_druby(["--colour", @dummy_spec_filename])
38
38
  out.should =~ /\e\[32m/n
39
39
  end
40
40
 
41
- specify "should output red colorized text when running with -c option" do
41
+ it "should output red colorized text when running with -c option" do
42
42
  out = run_spec_via_druby(["-c", @dummy_spec_filename])
43
43
  out.should =~ /\e\[31m/n
44
44
  end
@@ -47,12 +47,12 @@ context "DrbCommandLine with local server" do
47
47
  @dummy_spec_filename = File.expand_path(File.dirname(__FILE__)) + '/_dummy_spec.rb'
48
48
  File.open(@dummy_spec_filename, 'w') do |f|
49
49
  f.write %{
50
- context "DUMMY CONTEXT for 'DrbCommandLine with -c option'" do
51
- specify "should be output with green bar" do
52
- true.should be(true)
50
+ describe "DUMMY CONTEXT for 'DrbCommandLine with -c option'" do
51
+ it "should be output with green bar" do
52
+ true.should be_true
53
53
  end
54
54
 
55
- specify "should be output with red bar" do
55
+ it "should be output with red bar" do
56
56
  violated("I wan to see a red bar!")
57
57
  end
58
58
  end
@@ -1,49 +1,28 @@
1
1
  require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
2
 
3
- context "ExecutionContext" do
3
+ describe "ExecutionContext" do
4
4
 
5
- specify "should provide duck type" do
5
+ it "should provide duck_type()" do
6
6
  dt = duck_type(:length)
7
7
  dt.should be_an_instance_of(Spec::Mocks::DuckTypeArgConstraint)
8
8
  dt.matches?([]).should be_true
9
9
  end
10
10
 
11
- specify "should violate on :violated" do
11
+ it "should violate when violated()" do
12
12
  lambda do
13
- Spec::Runner::ExecutionContext.new(nil).violated
13
+ violated
14
14
  end.should raise_error(Spec::Expectations::ExpectationNotMetError)
15
15
  end
16
16
 
17
- specify "should provide mock" do
17
+ it "should provide mock()" do
18
18
  mock("thing").should be_an_instance_of(Spec::Mocks::Mock)
19
19
  end
20
20
 
21
- # TODO - the following two specs don't work when combined:
22
- # specify "should provide stub" do
23
- # thing_stub = stub("thing", :a => "A", :b => "B").should be_an_instance_of(Spec::Mocks::Mock)
24
- # thing_stub.a.should == "A"
25
- # thing_stub.b.should == "B"
26
- # end
27
- #
28
- # TypeError in 'ExecutionContext should provide stub'
29
- # ["a?", "as?"] is not a symbol
30
- # /Users/david/projects/ruby/rspec/trunk/rspec/lib/spec/expectations/should/should.rb:66:in `send'
31
- # /Users/david/projects/ruby/rspec/trunk/rspec/lib/spec/expectations/should/should.rb:66:in `__delegate_method_missing_to_target'
32
- # /Users/david/projects/ruby/rspec/trunk/rspec/lib/spec/expectations/should/base.rb:53:in `method_missing'
33
- # ./spec/spec/runner/execution_context_spec.rb:27:
34
- # /Users/david/projects/ruby/rspec/trunk/rspec/lib/spec/runner/specification.rb:55:in `execute_spec'
35
- # /Users/david/projects/ruby/rspec/trunk/rspec/lib/spec/runner/specification.rb:30:in `run'
36
- # /Users/david/projects/ruby/rspec/trunk/rspec/lib/spec/runner/context.rb:57:in `run'
37
- # /Users/david/projects/ruby/rspec/trunk/rspec/lib/spec/runner/context.rb:54:in `run'
38
- # /Users/david/projects/ruby/rspec/trunk/rspec/lib/spec/runner/context_runner.rb:23:in `run'
39
- # /Users/david/projects/ruby/rspec/trunk/rspec/lib/spec/runner/context_runner.rb:22:in `run'
40
- # /Users/david/projects/ruby/rspec/trunk/rspec/lib/spec/runner/command_line.rb:27:in `run'
41
- # bin/spec:4:
42
- specify "should provide stub" do
43
- thing_stub = stub("thing", :a => "A", :b => "B").should be_an_instance_of(Spec::Mocks::Mock)
21
+ it "should provide stub()" do
22
+ thing_stub = stub("thing").should be_an_instance_of(Spec::Mocks::Mock)
44
23
  end
45
24
 
46
- specify "should add method stubs to stub" do
25
+ it "should add method stubs to stub()" do
47
26
  thing_stub = stub("thing", :a => "A", :b => "B")
48
27
  thing_stub.a.should == "A"
49
28
  thing_stub.b.should == "B"
@@ -0,0 +1,36 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper.rb'
2
+
3
+ describe Kernel, "when extended by rspec" do
4
+ it "should respond to :describe" do
5
+ Object.new.should respond_to(:describe)
6
+ Object.new.should respond_to(:context)
7
+ end
8
+ end
9
+
10
+ describe Kernel, " when creating behaviours with describe" do
11
+
12
+ it "should fail when no block given" do
13
+ lambda { describe "foo" }.should raise_error(ArgumentError)
14
+ end
15
+
16
+ it "should fail when no description given" do
17
+ lambda { describe do; end }.should raise_error(ArgumentError)
18
+ end
19
+ end
20
+
21
+ describe Kernel, "#respond_to" do
22
+ before(:each) do
23
+ @kernel_impersonator = Class.new do
24
+ include Kernel
25
+ end.new
26
+ end
27
+
28
+ it "should return a Spec::Matchers::RespondTo" do
29
+ @kernel_impersonator.respond_to.should be_an_instance_of(Spec::Matchers::RespondTo)
30
+ end
31
+
32
+ it "should pass the submitted names to the RespondTo instance" do
33
+ Spec::Matchers::RespondTo.should_receive(:new).with(:a,'b','c?')
34
+ @kernel_impersonator.respond_to(:a,'b','c?')
35
+ end
36
+ end
@@ -0,0 +1,27 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper.rb'
2
+
3
+ module Spec
4
+ module Runner
5
+ module Formatter
6
+ describe "FailingBehavioursFormatter" do
7
+ before(:each) do
8
+ @io = StringIO.new
9
+ @formatter = FailingBehavioursFormatter.new(@io)
10
+ end
11
+
12
+ it "should add example name for each failure" do
13
+ @formatter.add_behaviour("b 1")
14
+ @formatter.example_failed("e 1", nil, Reporter::Failure.new(nil, RuntimeError.new))
15
+ @formatter.add_behaviour("b 2")
16
+ @formatter.example_failed("e 2", nil, Reporter::Failure.new(nil, RuntimeError.new))
17
+ @formatter.example_failed("e 3", nil, Reporter::Failure.new(nil, RuntimeError.new))
18
+ @io.string.should eql(<<-EOF
19
+ b 1
20
+ b 2
21
+ EOF
22
+ )
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,28 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper.rb'
2
+
3
+ module Spec
4
+ module Runner
5
+ module Formatter
6
+ describe "FailingExamplesFormatter" do
7
+ before(:each) do
8
+ @io = StringIO.new
9
+ @formatter = FailingExamplesFormatter.new(@io)
10
+ end
11
+
12
+ it "should add example name for each failure" do
13
+ @formatter.add_behaviour("b 1")
14
+ @formatter.example_failed("e 1", nil, Reporter::Failure.new(nil, RuntimeError.new))
15
+ @formatter.add_behaviour("b 2")
16
+ @formatter.example_failed("e 2", nil, Reporter::Failure.new(nil, RuntimeError.new))
17
+ @formatter.example_failed("e 3", nil, Reporter::Failure.new(nil, RuntimeError.new))
18
+ @io.string.should eql(<<-EOF
19
+ b 1 e 1
20
+ b 2 e 2
21
+ b 2 e 3
22
+ EOF
23
+ )
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -1,14 +1,15 @@
1
1
  require File.dirname(__FILE__) + '/../../../spec_helper.rb'
2
2
  require 'stringio'
3
+ describe "HtmlFormatter" do
4
+ ['--diff', '--dry-run'].each do |opt|
5
+ it "should produce HTML identical to the one we designed manually with #{opt}" do
6
+ root = File.expand_path(File.dirname(__FILE__) + '/../../../..')
7
+ suffix = PLATFORM == 'java' ? '-jruby' : ''
8
+ expected_file = File.dirname(__FILE__) + "/html_formatted-#{VERSION}#{suffix}.html"
9
+ raise "There is no HTML file with expected content for this platform: #{expected_file}" unless File.file?(expected_file)
10
+ expected_html = File.read(expected_file)
11
+ raise "There should be no absolute paths in html_formatted.html!!" if expected_html =~ /\/Users/n
3
12
 
4
- context "HtmlFormatter" do
5
- specify "should produce HTML identical to the one we designed manually" do
6
- root = File.expand_path(File.dirname(__FILE__) + '/../../../..')
7
- expected_file = File.dirname(__FILE__) + "/html_formatted-#{VERSION}.html"
8
- expected_html = File.read(expected_file)
9
- raise "There should be no absolute paths in html_formatted.html!!" if expected_html =~ /\/Users/n
10
-
11
- ['--diff', '--dry-run'].each do |opt|
12
13
  Dir.chdir(root) do
13
14
  args = ['failing_examples/mocking_example.rb', 'failing_examples/diffing_spec.rb', 'examples/stubbing_example.rb', '--format', 'html', opt]
14
15
  err = StringIO.new