rspec 1.2.8 → 1.2.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (238) hide show
  1. data/History.rdoc +41 -2
  2. data/Manifest.txt +11 -10
  3. data/Rakefile +47 -22
  4. data/Ruby1.9.rdoc +1 -2
  5. data/Upgrade.rdoc +56 -7
  6. data/bin/spec +2 -1
  7. data/cucumber.yml +3 -1
  8. data/examples/failing/README.txt +7 -3
  9. data/examples/failing/failing_implicit_docstrings_example.rb +0 -2
  10. data/examples/failing/mocking_example.rb +0 -2
  11. data/examples/failing/partial_mock_example.rb +0 -2
  12. data/examples/failing/pending_example.rb +0 -2
  13. data/examples/failing/predicate_example.rb +0 -2
  14. data/examples/failing/team_spec.rb +0 -3
  15. data/examples/failing/timeout_behaviour.rb +0 -2
  16. data/examples/passing/custom_formatter.rb +0 -1
  17. data/examples/passing/dynamic_spec.rb +0 -2
  18. data/examples/passing/file_accessor.rb +1 -2
  19. data/examples/passing/file_accessor_spec.rb +1 -2
  20. data/examples/passing/filtered_formatter.rb +0 -1
  21. data/examples/passing/greeter_spec.rb +0 -1
  22. data/examples/passing/helper_method_example.rb +0 -2
  23. data/examples/passing/implicit_docstrings_example.rb +0 -2
  24. data/examples/passing/io_processor_spec.rb +1 -2
  25. data/examples/passing/mocking_example.rb +0 -2
  26. data/examples/passing/nested_classes_example.rb +1 -2
  27. data/examples/passing/options_example.rb +0 -2
  28. data/examples/passing/partial_mock_example.rb +0 -2
  29. data/examples/passing/pending_example.rb +0 -2
  30. data/examples/passing/predicate_example.rb +0 -2
  31. data/examples/passing/shared_example_group_example.rb +0 -2
  32. data/examples/passing/simple_matcher_example.rb +0 -2
  33. data/examples/passing/stack_spec.rb +2 -3
  34. data/examples/passing/stack_spec_with_nested_example_groups.rb +2 -3
  35. data/examples/passing/stubbing_example.rb +0 -2
  36. data/examples/passing/yielding_example.rb +0 -2
  37. data/features/before_and_after_blocks/before_and_after_blocks.feature +4 -4
  38. data/features/command_line/line_number_option.feature +14 -14
  39. data/features/command_line/line_number_option_with_example_with_no_name.feature +2 -2
  40. data/features/example_groups/define_example_attribute.feature +41 -0
  41. data/features/example_groups/example_group_with_should_methods.feature +1 -1
  42. data/features/example_groups/implicit_docstrings.feature +7 -7
  43. data/features/example_groups/nested_groups.feature +2 -2
  44. data/features/expectations/customized_message.feature +4 -4
  45. data/features/expectations/expect_change.feature +4 -4
  46. data/features/expectations/expect_error.feature +4 -4
  47. data/features/extensions/custom_example_group.feature +10 -10
  48. data/features/formatters/custom_formatter.feature +3 -3
  49. data/features/interop/examples_and_tests_together.feature +10 -6
  50. data/features/interop/rspec_output.feature +1 -1
  51. data/features/interop/test_case_with_should_methods.feature +1 -1
  52. data/features/load_paths/add_lib_to_load_path.feature +20 -0
  53. data/features/load_paths/add_spec_to_load_path.feature +20 -0
  54. data/features/matchers/define_diffable_matcher.feature +2 -2
  55. data/features/matchers/define_matcher.feature +19 -19
  56. data/features/matchers/define_matcher_outside_rspec.feature +2 -3
  57. data/features/matchers/define_matcher_with_fluent_interface.feature +2 -2
  58. data/features/matchers/define_wrapped_matcher.feature +29 -0
  59. data/features/mock_framework_integration/use_flexmock.feature +1 -1
  60. data/features/mock_framework_integration/use_mocha.feature +1 -1
  61. data/features/mock_framework_integration/use_rr.feature +1 -1
  62. data/features/mocks/mix_stubs_and_mocks.feature +2 -2
  63. data/features/mocks/stub_implementation.feature +1 -1
  64. data/features/pending/pending_examples.feature +16 -16
  65. data/features/runner/specify_line_number.feature +4 -4
  66. data/features/spec_helper/spec_helper.feature +25 -0
  67. data/features/step_definitions/running_rspec_steps.rb +4 -2
  68. data/features/subject/explicit_subject.feature +2 -2
  69. data/features/subject/implicit_subject.feature +14 -2
  70. data/features/support/env.rb +6 -3
  71. data/lib/spec/adapters/mock_frameworks/mocha.rb +6 -1
  72. data/lib/spec/example/example_group_methods.rb +7 -0
  73. data/lib/spec/example/example_methods.rb +1 -1
  74. data/lib/spec/example/subject.rb +8 -0
  75. data/lib/spec/interop/test.rb +27 -1
  76. data/lib/spec/interop/test/unit/testcase.rb +1 -1
  77. data/lib/spec/matchers/exist.rb +2 -2
  78. data/lib/spec/matchers/extensions/instance_exec.rb +28 -20
  79. data/lib/spec/matchers/matcher.rb +21 -20
  80. data/lib/spec/mocks/argument_matchers.rb +17 -13
  81. data/lib/spec/mocks/error_generator.rb +14 -3
  82. data/lib/spec/mocks/{spec_methods.rb → example_methods.rb} +25 -11
  83. data/lib/spec/mocks/framework.rb +1 -1
  84. data/lib/spec/mocks/methods.rb +15 -0
  85. data/lib/spec/mocks/mock.rb +16 -10
  86. data/lib/spec/mocks/proxy.rb +1 -1
  87. data/lib/spec/rake/spectask.rb +3 -3
  88. data/lib/spec/runner/backtrace_tweaker.rb +41 -22
  89. data/lib/spec/runner/configuration.rb +18 -1
  90. data/lib/spec/runner/differs/default.rb +1 -1
  91. data/lib/spec/runner/drb_command_line.rb +5 -2
  92. data/lib/spec/runner/formatter/base_text_formatter.rb +8 -3
  93. data/lib/spec/runner/option_parser.rb +21 -15
  94. data/lib/spec/runner/options.rb +54 -23
  95. data/lib/spec/version.rb +3 -3
  96. data/resources/helpers/cmdline.rb +0 -1
  97. data/spec/autotest/autotest_helper.rb +4 -6
  98. data/spec/autotest/discover_spec.rb +2 -2
  99. data/spec/autotest/failed_results_re_spec.rb +1 -1
  100. data/spec/autotest/rspec_spec.rb +1 -1
  101. data/spec/spec/dsl/main_spec.rb +1 -1
  102. data/spec/spec/example/example_group_class_definition_spec.rb +1 -1
  103. data/spec/spec/example/example_group_factory_spec.rb +1 -1
  104. data/spec/spec/example/example_group_methods_spec.rb +21 -1
  105. data/spec/spec/example/example_group_proxy_spec.rb +1 -1
  106. data/spec/spec/example/example_group_spec.rb +1 -1
  107. data/spec/spec/example/example_matcher_spec.rb +1 -1
  108. data/spec/spec/example/example_methods_spec.rb +1 -1
  109. data/spec/spec/example/example_proxy_spec.rb +1 -1
  110. data/spec/spec/example/helper_method_spec.rb +1 -1
  111. data/spec/spec/example/nested_example_group_spec.rb +1 -1
  112. data/spec/spec/example/predicate_matcher_spec.rb +1 -1
  113. data/spec/spec/example/shared_example_group_spec.rb +1 -1
  114. data/spec/spec/example/subclassing_example_group_spec.rb +1 -1
  115. data/spec/spec/example/subject_spec.rb +17 -1
  116. data/spec/spec/expectations/differs/default_spec.rb +16 -3
  117. data/spec/spec/expectations/extensions/kernel_spec.rb +1 -1
  118. data/spec/spec/expectations/fail_with_spec.rb +1 -1
  119. data/spec/spec/expectations/handler_spec.rb +1 -1
  120. data/spec/spec/expectations/wrap_expectation_spec.rb +1 -1
  121. data/spec/spec/interop/test/unit/resources/test_case_with_various_names.rb +22 -0
  122. data/spec/spec/interop/test/unit/spec_spec.rb +1 -1
  123. data/spec/spec/interop/test/unit/test_unit_spec_helper.rb +2 -2
  124. data/spec/spec/interop/test/unit/testcase_spec.rb +7 -2
  125. data/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +1 -1
  126. data/spec/spec/matchers/be_close_spec.rb +1 -1
  127. data/spec/spec/matchers/be_instance_of_spec.rb +1 -1
  128. data/spec/spec/matchers/be_kind_of_spec.rb +1 -1
  129. data/spec/spec/matchers/be_spec.rb +13 -1
  130. data/spec/spec/matchers/change_spec.rb +1 -1
  131. data/spec/spec/matchers/compatibility_spec.rb +1 -1
  132. data/spec/spec/matchers/description_generation_spec.rb +1 -1
  133. data/spec/spec/matchers/dsl_spec.rb +1 -1
  134. data/spec/spec/matchers/eql_spec.rb +1 -1
  135. data/spec/spec/matchers/equal_spec.rb +1 -1
  136. data/spec/spec/matchers/exist_spec.rb +6 -2
  137. data/spec/spec/matchers/has_spec.rb +19 -1
  138. data/spec/spec/matchers/have_spec.rb +1 -1
  139. data/spec/spec/matchers/include_spec.rb +1 -1
  140. data/spec/spec/matchers/match_array_spec.rb +1 -1
  141. data/spec/spec/matchers/match_spec.rb +1 -1
  142. data/spec/spec/matchers/matcher_methods_spec.rb +1 -1
  143. data/spec/spec/matchers/matcher_spec.rb +55 -28
  144. data/spec/spec/matchers/matchers_spec.rb +1 -1
  145. data/spec/spec/matchers/operator_matcher_spec.rb +1 -1
  146. data/spec/spec/matchers/raise_error_spec.rb +1 -1
  147. data/spec/spec/matchers/respond_to_spec.rb +1 -1
  148. data/spec/spec/matchers/satisfy_spec.rb +1 -1
  149. data/spec/spec/matchers/simple_matcher_spec.rb +1 -1
  150. data/spec/spec/matchers/throw_symbol_spec.rb +1 -1
  151. data/spec/spec/mocks/any_number_of_times_spec.rb +1 -1
  152. data/spec/spec/mocks/argument_expectation_spec.rb +1 -1
  153. data/spec/spec/mocks/argument_matchers_spec.rb +19 -0
  154. data/spec/spec/mocks/at_least_spec.rb +1 -1
  155. data/spec/spec/mocks/at_most_spec.rb +1 -1
  156. data/spec/spec/mocks/bug_report_10260_spec.rb +1 -1
  157. data/spec/spec/mocks/bug_report_10263_spec.rb +1 -1
  158. data/spec/spec/mocks/bug_report_11545_spec.rb +1 -1
  159. data/spec/spec/mocks/bug_report_15719_spec.rb +3 -3
  160. data/spec/spec/mocks/bug_report_496_spec.rb +1 -1
  161. data/spec/spec/mocks/bug_report_600_spec.rb +1 -1
  162. data/spec/spec/mocks/bug_report_7611_spec.rb +1 -1
  163. data/spec/spec/mocks/bug_report_7805_spec.rb +1 -1
  164. data/spec/spec/mocks/bug_report_8165_spec.rb +1 -1
  165. data/spec/spec/mocks/bug_report_8302_spec.rb +1 -1
  166. data/spec/spec/mocks/bug_report_830_spec.rb +1 -1
  167. data/spec/spec/mocks/double_spec.rb +12 -0
  168. data/spec/spec/mocks/failing_argument_matchers_spec.rb +6 -6
  169. data/spec/spec/mocks/hash_including_matcher_spec.rb +1 -1
  170. data/spec/spec/mocks/hash_not_including_matcher_spec.rb +1 -1
  171. data/spec/spec/mocks/mock_ordering_spec.rb +4 -4
  172. data/spec/spec/mocks/mock_space_spec.rb +1 -1
  173. data/spec/spec/mocks/mock_spec.rb +20 -24
  174. data/spec/spec/mocks/multiple_return_value_spec.rb +8 -8
  175. data/spec/spec/mocks/nil_expectation_warning_spec.rb +1 -1
  176. data/spec/spec/mocks/null_object_mock_spec.rb +1 -1
  177. data/spec/spec/mocks/once_counts_spec.rb +1 -1
  178. data/spec/spec/mocks/options_hash_spec.rb +1 -1
  179. data/spec/spec/mocks/partial_mock_spec.rb +1 -1
  180. data/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +1 -1
  181. data/spec/spec/mocks/passing_argument_matchers_spec.rb +1 -1
  182. data/spec/spec/mocks/precise_counts_spec.rb +1 -1
  183. data/spec/spec/mocks/record_messages_spec.rb +1 -1
  184. data/spec/spec/mocks/stub_chain_spec.rb +1 -1
  185. data/spec/spec/mocks/stub_implementation_spec.rb +1 -1
  186. data/spec/spec/mocks/stub_spec.rb +14 -9
  187. data/spec/spec/mocks/stubbed_message_expectations_spec.rb +2 -2
  188. data/spec/spec/mocks/twice_counts_spec.rb +1 -1
  189. data/spec/spec/mocks/unstub_spec.rb +1 -1
  190. data/spec/spec/package/bin_spec_spec.rb +4 -10
  191. data/spec/spec/rake/spectask_spec.rb +2 -2
  192. data/spec/spec/runner/class_and_argument_parser_spec.rb +1 -1
  193. data/spec/spec/runner/command_line_spec.rb +1 -1
  194. data/spec/spec/runner/configuration_spec.rb +15 -6
  195. data/spec/spec/runner/drb_command_line_spec.rb +1 -1
  196. data/spec/spec/runner/example_group_runner_spec.rb +1 -1
  197. data/spec/spec/runner/formatter/base_formatter_spec.rb +1 -1
  198. data/spec/spec/runner/formatter/base_text_formatter_spec.rb +10 -1
  199. data/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +1 -1
  200. data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +1 -1
  201. data/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +72 -76
  202. data/spec/spec/runner/formatter/html_formatted-1.8.6.html +50 -50
  203. data/spec/spec/runner/formatter/html_formatted-1.8.7.html +50 -50
  204. data/spec/spec/runner/formatter/html_formatted-1.9.1.html +61 -69
  205. data/spec/spec/runner/formatter/html_formatter_spec.rb +26 -26
  206. data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +1 -1
  207. data/spec/spec/runner/formatter/profile_formatter_spec.rb +1 -1
  208. data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +13 -9
  209. data/spec/spec/runner/formatter/snippet_extractor_spec.rb +1 -1
  210. data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +1 -1
  211. data/spec/spec/runner/formatter/{text_mate_formatted-1.8.4.html → text_mate_formatted-1.8.6-jruby.html} +64 -59
  212. data/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +46 -46
  213. data/spec/spec/runner/formatter/text_mate_formatted-1.8.7.html +46 -46
  214. data/spec/spec/runner/formatter/text_mate_formatted-1.9.1.html +55 -63
  215. data/spec/spec/runner/formatter/text_mate_formatter_spec.rb +3 -3
  216. data/spec/spec/runner/heckle_runner_spec.rb +1 -1
  217. data/spec/spec/runner/heckler_spec.rb +1 -1
  218. data/spec/spec/runner/line_number_query/line_number_query_fixture.rb +1 -1
  219. data/spec/spec/runner/line_number_query_spec.rb +10 -1
  220. data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +22 -16
  221. data/spec/spec/runner/option_parser_spec.rb +48 -14
  222. data/spec/spec/runner/options_spec.rb +16 -2
  223. data/spec/spec/runner/output_one_time_fixture.rb +1 -1
  224. data/spec/spec/runner/output_one_time_fixture_runner.rb +2 -3
  225. data/spec/spec/runner/output_one_time_spec.rb +6 -7
  226. data/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +65 -22
  227. data/spec/spec/runner/reporter_spec.rb +1 -1
  228. data/spec/spec/runner_spec.rb +1 -1
  229. data/spec/spec_helper.rb +5 -7
  230. data/spec/{spec → support}/spec_classes.rb +0 -0
  231. metadata +58 -17
  232. data/examples/failing/spec_helper.rb +0 -3
  233. data/examples/passing/spec_helper.rb +0 -3
  234. data/features/heckle/heckle.feature +0 -56
  235. data/spec/rspec_suite.rb +0 -6
  236. data/spec/spec/runner/formatter/html_formatted-1.8.4.html +0 -366
  237. data/spec/spec/runner/formatter/html_formatted-1.8.5-jruby.html +0 -387
  238. data/spec/spec/runner/formatter/html_formatted-1.8.5.html +0 -372
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper.rb'
1
+ require 'spec_helper'
2
2
  module Spec
3
3
  module Matchers
4
4
  describe "equal" do
@@ -1,11 +1,11 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper.rb'
1
+ require 'spec_helper'
2
2
 
3
3
  class Substance
4
4
  def initialize exists, description
5
5
  @exists = exists
6
6
  @description = description
7
7
  end
8
- def exist?
8
+ def exist?(arg=nil)
9
9
  @exists
10
10
  end
11
11
  def inspect
@@ -36,6 +36,10 @@ describe "should exist" do
36
36
  @real.should exist
37
37
  end
38
38
 
39
+ it "passes if target exists with args" do
40
+ @real.should exist('this arg')
41
+ end
42
+
39
43
  it "fails if target does not exist" do
40
44
  lambda { @imaginary.should exist }.should fail
41
45
  end
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper.rb'
1
+ require 'spec_helper'
2
2
 
3
3
  describe "should have_sym(*args)" do
4
4
  it "should pass if #has_sym?(*args) returns true" do
@@ -11,6 +11,16 @@ describe "should have_sym(*args)" do
11
11
  }.should fail_with("expected #has_key?(:a) to return true, got false")
12
12
  end
13
13
 
14
+ it "should fail if #has_sym?(*args) returns nil" do
15
+ klass = Class.new do
16
+ def has_foo?
17
+ end
18
+ end
19
+ lambda {
20
+ klass.new.should have_foo
21
+ }.should fail_with("expected #has_foo?(nil) to return true, got false")
22
+ end
23
+
14
24
  it "should fail if target does not respond to #has_sym?" do
15
25
  lambda {
16
26
  Object.new.should have_key(:a)
@@ -31,6 +41,14 @@ describe "should_not have_sym(*args)" do
31
41
  {:a => "A"}.should_not have_key(:b)
32
42
  end
33
43
 
44
+ it "should pass if #has_sym?(*args) returns nil" do
45
+ klass = Class.new do
46
+ def has_foo?
47
+ end
48
+ end
49
+ klass.new.should_not have_foo
50
+ end
51
+
34
52
  it "should fail if #has_sym?(*args) returns true" do
35
53
  lambda {
36
54
  {:a => "A"}.should_not have_key(:a)
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper.rb'
1
+ require 'spec_helper'
2
2
 
3
3
  share_as :HaveSpecHelper do
4
4
  def create_collection_owner_with(n)
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper.rb'
1
+ require 'spec_helper'
2
2
 
3
3
  describe "should include(expected)" do
4
4
  it "should pass if target includes expected" do
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper.rb'
1
+ require 'spec_helper'
2
2
 
3
3
  class UnsortableObject
4
4
  def initialize(id)
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper.rb'
1
+ require 'spec_helper'
2
2
 
3
3
  describe "should match(expected)" do
4
4
  it "should pass when target (String) matches expected (Regexp)" do
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper.rb'
1
+ require 'spec_helper'
2
2
 
3
3
  module Spec
4
4
  module Matchers
@@ -1,8 +1,8 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  module Spec
4
4
  module Matchers
5
- describe Spec::Matchers::Matcher do
5
+ describe Matcher do
6
6
  context "without overrides" do
7
7
  before(:each) do
8
8
  @matcher = Spec::Matchers::Matcher.new(:be_a_multiple_of, 3) do |multiple|
@@ -11,7 +11,7 @@ module Spec
11
11
  end
12
12
  end
13
13
  end
14
-
14
+
15
15
  it "provides a default description" do
16
16
  @matcher.description.should == "be a multiple of 3"
17
17
  end
@@ -26,32 +26,32 @@ module Spec
26
26
  @matcher.failure_message_for_should_not.should == "expected 9 not to be a multiple of 3"
27
27
  end
28
28
  end
29
-
29
+
30
30
  it "is not diffable by default" do
31
31
  matcher = Spec::Matchers::Matcher.new(:name) {}
32
32
  matcher.should_not be_diffable
33
33
  end
34
-
34
+
35
35
  it "is diffable when told to be" do
36
36
  matcher = Spec::Matchers::Matcher.new(:name) { diffable }
37
37
  matcher.should be_diffable
38
38
  end
39
-
39
+
40
40
  it "provides expected" do
41
41
  matcher = Spec::Matchers::Matcher.new(:name, 'expected string') {}
42
42
  matcher.expected.should == ['expected string']
43
43
  end
44
-
44
+
45
45
  it "provides actual" do
46
46
  matcher = Spec::Matchers::Matcher.new(:name, 'expected string') do
47
47
  match {|actual|}
48
48
  end
49
-
49
+
50
50
  matcher.matches?('actual string')
51
-
51
+
52
52
  matcher.actual.should == 'actual string'
53
53
  end
54
-
54
+
55
55
  context "with overrides" do
56
56
  before(:each) do
57
57
  @matcher = Spec::Matchers::Matcher.new(:be_boolean, true) do |boolean|
@@ -86,16 +86,16 @@ module Spec
86
86
  @matcher.matches?(false)
87
87
  @matcher.failure_message_for_should.should == "expected false to be the boolean true"
88
88
  end
89
-
89
+
90
90
  it "overrides the failure message for #should_not" do
91
91
  @matcher.matches?(true)
92
92
  @matcher.failure_message_for_should_not.should == "expected true not to be the boolean true"
93
93
  end
94
94
  end
95
-
95
+
96
96
  context "#new" do
97
97
  it "passes matches? arg to match block" do
98
- matcher = Spec::Matchers::Matcher.new(:ignore) do
98
+ matcher = Spec::Matchers::Matcher.new(:ignore) do
99
99
  match do |actual|
100
100
  actual == 5
101
101
  end
@@ -115,22 +115,22 @@ module Spec
115
115
 
116
116
  context "with no args" do
117
117
  before(:each) do
118
- @matcher = Spec::Matchers::Matcher.new(:matcher_name) do
118
+ @matcher = Spec::Matchers::Matcher.new(:matcher_name) do
119
119
  match do |actual|
120
120
  actual == 5
121
121
  end
122
- end
122
+ end
123
123
  end
124
-
124
+
125
125
  it "matches" do
126
126
  @matcher.matches?(5).should be_true
127
127
  end
128
-
128
+
129
129
  it "describes" do
130
130
  @matcher.description.should == "matcher name"
131
131
  end
132
132
  end
133
-
133
+
134
134
  context "with 1 arg" do
135
135
  before(:each) do
136
136
  @matcher = Spec::Matchers::Matcher.new(:matcher_name, 1) do |expected|
@@ -139,16 +139,16 @@ module Spec
139
139
  end
140
140
  end
141
141
  end
142
-
142
+
143
143
  it "matches" do
144
144
  @matcher.matches?(5).should be_true
145
145
  end
146
-
146
+
147
147
  it "describes" do
148
148
  @matcher.description.should == "matcher name 1"
149
149
  end
150
150
  end
151
-
151
+
152
152
  context "with multiple args" do
153
153
  before(:each) do
154
154
  @matcher = Spec::Matchers::Matcher.new(:matcher_name, 1, 2, 3, 4) do |a,b,c,d|
@@ -157,16 +157,16 @@ module Spec
157
157
  end
158
158
  end
159
159
  end
160
-
160
+
161
161
  it "matches" do
162
162
  @matcher.matches?(10).should be_true
163
163
  end
164
-
164
+
165
165
  it "describes" do
166
166
  @matcher.description.should == "matcher name 1, 2, 3, and 4"
167
167
  end
168
168
  end
169
-
169
+
170
170
  it "supports helper methods" do
171
171
  matcher = Spec::Matchers::Matcher.new(:be_similar_to, [1,2,3]) do |sample|
172
172
  match do |actual|
@@ -177,25 +177,52 @@ module Spec
177
177
  a.sort == b.sort
178
178
  end
179
179
  end
180
-
180
+
181
181
  matcher.matches?([2,3,1]).should be_true
182
182
  end
183
-
183
+
184
184
  it "supports fluent interface" do
185
185
  matcher = Spec::Matchers::Matcher.new(:first_word) do
186
186
  def second_word
187
187
  self
188
188
  end
189
189
  end
190
-
190
+
191
191
  matcher.second_word.should == matcher
192
192
  end
193
-
193
+
194
194
  it "treats method missing normally for undeclared methods" do
195
195
  matcher = Spec::Matchers::Matcher.new(:ignore) { }
196
196
  expect { matcher.non_existent_method }.to raise_error(NoMethodError)
197
197
  end
198
198
 
199
+ it "has access to other matchers" do
200
+ matcher = Spec::Matchers::Matcher.new(:ignore, 3) do |expected|
201
+ match do |actual|
202
+ extend Spec::Matchers
203
+ actual.should eql(5 + expected)
204
+ end
205
+ end
206
+
207
+ matcher.matches?(8).should be_true
208
+ end
209
+
210
+ it "lets you override the actual() in messages" do
211
+ matcher = Spec::Matchers::Matcher.new(:be_foo) do
212
+ match do |actual|
213
+ @submitted = actual
214
+ false
215
+ end
216
+
217
+ def actual
218
+ "replaced"
219
+ end
220
+ end
221
+
222
+ matcher.matches?("foo")
223
+ matcher.failure_message_for_should.should =~ /replaced/
224
+ end
225
+
199
226
  end
200
227
  end
201
228
  end
@@ -1,2 +1,2 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper'
1
+ require 'spec_helper'
2
2
 
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper.rb'
1
+ require 'spec_helper'
2
2
 
3
3
  require 'spec/runner/differs/default'
4
4
 
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper.rb'
1
+ require 'spec_helper'
2
2
 
3
3
  describe "should raise_error" do
4
4
  it "should pass if anything is raised" do
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper.rb'
1
+ require 'spec_helper'
2
2
 
3
3
  describe "should respond_to(:sym)" do
4
4
 
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper.rb'
1
+ require 'spec_helper'
2
2
 
3
3
  describe "should satisfy { block }" do
4
4
  it "should pass if block returns true" do
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  module Spec
4
4
  module Matchers
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper.rb'
1
+ require 'spec_helper'
2
2
 
3
3
  module Spec
4
4
  module Matchers
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper.rb'
1
+ require 'spec_helper'
2
2
 
3
3
  module Spec
4
4
  module Mocks
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper.rb'
1
+ require 'spec_helper'
2
2
 
3
3
  module Spec
4
4
  module Mocks
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+
3
+ module Spec
4
+ module Mocks
5
+ module ArgumentMatchers
6
+ describe AnyArgsMatcher do
7
+ it "represents itself nicely for failure messages" do
8
+ AnyArgsMatcher.new.description.should == "any args"
9
+ end
10
+ end
11
+
12
+ describe AnyArgMatcher do
13
+ it "represents itself nicely for failure messages" do
14
+ AnyArgMatcher.new(nil).description.should == "anything"
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper.rb'
1
+ require 'spec_helper'
2
2
 
3
3
  module Spec
4
4
  module Mocks
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper.rb'
1
+ require 'spec_helper'
2
2
 
3
3
  module Spec
4
4
  module Mocks
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper.rb'
1
+ require 'spec_helper'
2
2
 
3
3
  describe "An RSpec Mock" do
4
4
  it "should hide internals in its inspect representation" do
@@ -20,7 +20,7 @@ describe "Mock" do
20
20
  begin
21
21
  @mock.foobar
22
22
  rescue Exception => e
23
- e.message.should == "Mock 'test mock' received unexpected message :foobar with (no args)"
23
+ e.message.should == "Mock \"test mock\" received unexpected message :foobar with (no args)"
24
24
  end
25
25
  end
26
26
  end
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper.rb'
1
+ require 'spec_helper'
2
2
 
3
3
  class LiarLiarPantsOnFire
4
4
  def respond_to?(sym, incl_private=false)
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper.rb'
1
+ require 'spec_helper'
2
2
 
3
3
  module Spec
4
4
  module Mocks
@@ -9,7 +9,7 @@ module Spec
9
9
  m.should_receive(:bar).with("message")
10
10
  lambda {
11
11
  m.bar("different message")
12
- }.should raise_error(Spec::Mocks::MockExpectationError, %Q{Mock 'foo' expected :bar with ("message") but received it with ("different message")})
12
+ }.should raise_error(Spec::Mocks::MockExpectationError, %Q{Mock "foo" received :bar with unexpected arguments\n expected: ("message")\n got: ("different message")})
13
13
  m.bar("message") # allows the spec to pass
14
14
  end
15
15
 
@@ -22,7 +22,7 @@ module Spec
22
22
  m.should_receive(:bar).with("message")
23
23
  lambda {
24
24
  m.bar("different message")
25
- }.should raise_error(Spec::Mocks::MockExpectationError, %Q{Mock 'foo' expected :bar with ("message") but received it with ("different message")})
25
+ }.should raise_error(Spec::Mocks::MockExpectationError, %Q{Mock "foo" received :bar with unexpected arguments\n expected: ("message")\n got: ("different message")})
26
26
  m.bar("message") # allows the spec to pass
27
27
  end
28
28
  end