rspec-expectations 2.4.0 → 2.5.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.
data/Guardfile CHANGED
@@ -1,5 +1,5 @@
1
1
  guard 'rspec', :version => 2 do
2
- watch('^spec/(.*)_spec.rb')
3
- watch('^lib/(.*)\.rb') { |m| "spec/#{m[1]}_spec.rb" }
4
- watch('^spec/spec_helper.rb') { "spec" }
2
+ watch(/^spec\/(.*)_spec.rb/)
3
+ watch(/^lib\/(.*)\.rb/) { |m| "spec/#{m[1]}_spec.rb" }
4
+ watch(/^spec\/spec_helper.rb/) { "spec" }
5
5
  end
data/features/.nav CHANGED
@@ -1,3 +1,4 @@
1
+ - Upgrade.md
1
2
  - customized_message.feature
2
3
  - diffing.feature
3
4
  - implicit_docstrings.feature
@@ -1,4 +1,13 @@
1
- ## rspec-expectations release history (incomplete)
1
+ ### 2.5.0 / 2011-02-05
2
+
3
+ [full changelog](http://github.com/rspec/rspec-expectations/compare/v2.4.0...v2.5.0)
4
+
5
+ * Enhancements
6
+ * `should exist` works with `exist?` or `exists?` (Myron Marston)
7
+ * `expect { ... }.not_to do_something` (in addition to `to_not`)
8
+
9
+ * Documentation
10
+ * improved docs for raise_error matcher (James Almond)
2
11
 
3
12
  ### 2.4.0 / 2011-01-02
4
13
 
File without changes
@@ -1,11 +1,11 @@
1
1
  Feature: exist matcher
2
2
 
3
3
  The exist matcher is used to specify that something exists
4
- (as indicated by #exist?):
4
+ (as indicated by #exist? or #exists?):
5
5
 
6
- obj.should exist # passes if obj.exist?
6
+ obj.should exist # passes if obj.exist? or obj.exists?
7
7
 
8
- Scenario: basic usage
8
+ Scenario Outline: basic usage
9
9
  Given a file named "exist_matcher_spec.rb" with:
10
10
  """
11
11
  class Planet
@@ -19,7 +19,7 @@ Feature: exist matcher
19
19
  "<Planet: #{name}>"
20
20
  end
21
21
 
22
- def exist?
22
+ def <predicate_method>
23
23
  %w[Mercury Venus Earth Mars Jupiter Saturn Uranus Neptune].include?(name)
24
24
  end
25
25
  end
@@ -42,3 +42,8 @@ Feature: exist matcher
42
42
  | expected <Planet: Earth> not to exist |
43
43
  | expected <Planet: Tatooine> to exist |
44
44
 
45
+ Examples:
46
+ | predicate_method |
47
+ | exist? |
48
+ | exists? |
49
+
@@ -1,9 +1,9 @@
1
1
  Feature: expect change
2
2
 
3
- Expect some code (wrapped in a proc) to change the state of some object.
4
-
5
- Scenario: expecting change
6
- Given a file named "expect_change_spec.rb" with:
3
+ Expect the execution of a block of code to change the state of an object.
4
+
5
+ Background:
6
+ Given a file named "lib/counter.rb" with:
7
7
  """
8
8
  class Counter
9
9
  class << self
@@ -17,49 +17,43 @@ Feature: expect change
17
17
  end
18
18
  end
19
19
  end
20
-
20
+ """
21
+
22
+ Scenario: expect change
23
+ Given a file named "spec/example_spec.rb" with:
24
+ """
25
+ require "counter"
26
+
21
27
  describe Counter, "#increment" do
22
28
  it "should increment the count" do
23
- expect{Counter.increment}.to change{Counter.count}.from(0).to(1)
29
+ expect { Counter.increment }.to change{Counter.count}.from(0).to(1)
24
30
  end
25
31
 
26
32
  # deliberate failure
27
33
  it "should increment the count by 2" do
28
- expect{Counter.increment}.to change{Counter.count}.by(2)
34
+ expect { Counter.increment }.to change{Counter.count}.by(2)
29
35
  end
30
36
  end
31
37
  """
32
- When I run "rspec ./expect_change_spec.rb"
33
- Then the output should contain "2 examples, 1 failure"
38
+ When I run "rspec spec/example_spec.rb"
39
+ Then the output should contain "1 failure"
34
40
  Then the output should contain "should have been changed by 2, but was changed by 1"
35
41
 
36
- Scenario: expecting no change
37
- Given a file named "expect_no_change_spec.rb" with:
42
+ Scenario: expect no change
43
+ Given a file named "spec/example_spec.rb" with:
38
44
  """
39
- class Counter
40
- class << self
41
- def increment
42
- @count ||= 0
43
- @count += 1
44
- end
45
-
46
- def count
47
- @count ||= 0
48
- end
49
- end
50
- end
45
+ require "counter"
51
46
 
52
47
  describe Counter, "#increment" do
53
- it "should not increment the count by 2" do
54
- expect{Counter.increment}.to_not change{Counter.count}.from(0).to(2)
48
+ it "should not increment the count by 1 (using to_not)" do
49
+ expect { Counter.increment }.to_not change{Counter.count}
55
50
  end
56
51
 
57
- # deliberate failure
58
- it "should not increment the count by 1" do
59
- expect{Counter.increment}.to_not change{Counter.count}.by(1)
52
+ it "should not increment the count by 1 (using not_to)" do
53
+ expect { Counter.increment }.not_to change{Counter.count}
60
54
  end
61
55
  end
62
56
  """
63
- When I run "rspec ./expect_no_change_spec.rb"
64
- Then the output should contain "2 examples, 1 failure"
57
+ When I run "rspec spec/example_spec.rb"
58
+ Then the output should contain "2 failures"
65
59
  Then the output should contain "should not have changed, but did change from 1 to 2"
@@ -1,44 +1,105 @@
1
- Feature: expect error
1
+ Feature: raise_error matcher
2
2
 
3
- Expect a proc to raise an error when called.
4
-
5
- Scenario: expect error
3
+ Use the `raise_error` matcher to specify that a block of code raises an
4
+ error. The most basic form passes if any error is thrown:
5
+
6
+ expect { raise StandardError }.to raise_error
7
+
8
+ You can use `raise_exception` instead if you prefer that wording:
9
+
10
+ expect { 3 / 0 }.to raise_exception
11
+
12
+ `raise_error` and `raise_exception` are functionally interchangeable, so use
13
+ the one that makes the most sense to you in any given context.
14
+
15
+ In addition to the basic form, above, there are a number of ways to specify
16
+ details of an error/exception:
17
+
18
+ Scenario: expect any error
6
19
  Given a file named "expect_error_spec.rb" with:
7
20
  """
8
- describe Object, "#non_existent_message" do
9
- it "should raise" do
10
- expect{Object.non_existent_message}.to raise_error(NameError)
21
+ describe "calling a method that does not exist" do
22
+ it "raises" do
23
+ expect { Object.new.foo }.to raise_error
11
24
  end
12
25
  end
26
+ """
27
+ When I run "rspec expect_error_spec.rb"
28
+ Then the example should pass
13
29
 
14
- #deliberate failure
15
- describe Object, "#public_instance_methods" do
16
- it "should raise" do
17
- expect{Object.public_instance_methods}.to raise_error(NameError)
30
+ Scenario: expect specific error
31
+ Given a file named "expect_error_spec.rb" with:
32
+ """
33
+ describe "calling a method that does not exist" do
34
+ it "raises" do
35
+ expect { Object.new.foo }.to raise_error(NameError)
18
36
  end
19
37
  end
20
38
  """
21
- When I run "rspec ./expect_error_spec.rb"
22
- Then the output should contain "2 examples, 1 failure"
23
- Then the output should contain "expected NameError but nothing was raised"
39
+ When I run "rspec expect_error_spec.rb"
40
+ Then the example should pass
24
41
 
25
- Scenario: expect no error
26
- Given a file named "expect_no_error_spec.rb" with:
42
+ Scenario: expect specific error message using a string
43
+ Given a file named "expect_error_with_message.rb" with:
27
44
  """
28
- describe Object, "#public_instance_methods" do
29
- it "should not raise" do
30
- expect{Object.public_instance_methods}.to_not raise_error(NameError)
45
+ describe "matching error message with string" do
46
+ it "matches the error message" do
47
+ expect { raise StandardError, 'this message exactly'}.
48
+ to raise_error(StandardError, 'this message exactly')
49
+ end
50
+ end
51
+ """
52
+ When I run "rspec expect_error_with_message.rb"
53
+ Then the example should pass
54
+
55
+ Scenario: expect specific error message using a regular expression
56
+ Given a file named "expect_error_with_regex.rb" with:
57
+ """
58
+ describe "matching error message with regex" do
59
+ it "matches the error message" do
60
+ expect { raise StandardError, "my message" }.
61
+ to raise_error(StandardError, /my mess/)
31
62
  end
32
63
  end
64
+ """
65
+ When I run "rspec expect_error_with_regex.rb"
66
+ Then the example should pass
33
67
 
34
- #deliberate failure
35
- describe Object, "#non_existent_message" do
36
- it "should not raise" do
37
- expect{Object.non_existent_message}.to_not raise_error(NameError)
68
+ Scenario: set expectations on error object passed to block
69
+ Given a file named "expect_error_with_block_spec.rb" with:
70
+ """
71
+ describe "#foo" do
72
+ it "raises NameError" do
73
+ expect { Object.new.foo }.to raise_error { |error|
74
+ error.should be_a(NameError)
75
+ }
38
76
  end
39
77
  end
40
78
  """
41
- When I run "rspec ./expect_no_error_spec.rb"
42
- Then the output should contain "2 examples, 1 failure"
43
- Then the output should contain "undefined method `non_existent_message'"
79
+ When I run "rspec expect_error_with_block_spec.rb"
80
+ Then the example should pass
44
81
 
82
+ Scenario: expect no error at all
83
+ Given a file named "expect_no_error_spec.rb" with:
84
+ """
85
+ describe "#to_s" do
86
+ it "does not raise" do
87
+ expect { Object.new.to_s }.to_not raise_error
88
+ end
89
+ end
90
+ """
91
+ When I run "rspec expect_no_error_spec.rb"
92
+ Then the example should pass
93
+
94
+ Scenario: expect no occurence of a specific error
95
+ Given a file named "expect_no_error_spec.rb" with:
96
+ """
97
+ describe Object, "#public_instance_methods" do
98
+ it "does not raise" do
99
+ expect { Object.public_instance_methods }.
100
+ to_not raise_error(NameError)
101
+ end
102
+ end
103
+ """
104
+ When I run "rspec expect_no_error_spec.rb"
105
+ Then the example should pass
@@ -118,18 +118,4 @@ Feature: include matcher
118
118
  end
119
119
  """
120
120
  When I run "rspec hash_include_matcher_spec.rb"
121
- Then the output should contain all of these:
122
- | 22 examples, 13 failures |
123
- | expected {:a=>7, :b=>5} not to include :a |
124
- | expected {:a=>7, :b=>5} not to include :b and :a |
125
- | expected {:a=>7, :b=>5} not to include {:a=>7} |
126
- | expected {:a=>7, :b=>5} not to include {:a=>7, :b=>5} |
127
- | expected {:a=>7, :b=>5} to include :c |
128
- | expected {:a=>7, :b=>5} to include :c and :d |
129
- | expected {:a=>7, :b=>5} to include {:d=>2} |
130
- | expected {:a=>7, :b=>5} to include {:a=>5} |
131
- | expected {:a=>7, :b=>5} to include {:a=>5, :b=>7} |
132
- | expected {:a=>7, :b=>5} to include :a and :d |
133
- | expected {:a=>7, :b=>5} not to include :a and :d |
134
- And the output should match /expected \{:a=>7, :b=>5\} to include \{(?::a=>7, :d=>3)|(?::d=>3, :a=>7)\}/
135
- And the output should match /expected \{:a=>7, :b=>5\} not to include \{(?::a=>7, :d=>3)|(?::d=>3, :a=>7)\}/
121
+ Then the output should contain "13 failure"
@@ -11,3 +11,12 @@ Then /^the output should contain all of these:$/ do |table|
11
11
  end
12
12
  end
13
13
 
14
+ Then /^the example(?:s)? should(?: all)? pass$/ do
15
+ Then %q{the output should contain "0 failures"}
16
+ Then %q{the exit status should be 0}
17
+ end
18
+
19
+ Then /^the example should fail$/ do
20
+ Then %q{the output should contain "1 failure"}
21
+ Then %q{the exit status should not be 0}
22
+ end
@@ -1,7 +1,7 @@
1
1
  module RSpec # :nodoc:
2
2
  module Expectations # :nodoc:
3
3
  module Version # :nodoc:
4
- STRING = '2.4.0'
4
+ STRING = '2.5.0'
5
5
  end
6
6
  end
7
7
  end
@@ -3,6 +3,7 @@ module RSpec
3
3
  module BlockAliases
4
4
  alias_method :to, :should
5
5
  alias_method :to_not, :should_not
6
+ alias_method :not_to, :should_not
6
7
  end
7
8
 
8
9
  # Extends the submitted block with aliases to and to_not
@@ -4,11 +4,21 @@ module RSpec
4
4
  # should exist
5
5
  # should_not exist
6
6
  #
7
- # Passes if actual.exist?
8
- def exist(arg=nil)
7
+ # Passes if actual.exist? or actual.exists?
8
+ def exist(*args)
9
9
  Matcher.new :exist do
10
10
  match do |actual|
11
- arg ? actual.exist?(arg) : actual.exist?
11
+ predicates = [:exist?, :exists?].select { |p| actual.respond_to?(p) }
12
+ existance_values = predicates.map { |p| actual.send(p, *args) }
13
+ uniq_truthy_values = existance_values.map { |v| !!v }.uniq
14
+
15
+ case uniq_truthy_values.size
16
+ when 0; raise NoMethodError.new("#{actual.inspect} does not respond to either #exist? or #exists?")
17
+ when 1; existance_values.first
18
+ else raise "#exist? and #exists? returned different values:\n\n" +
19
+ " exist?: #{existance_values.first}\n" +
20
+ "exists?: #{existance_values.last}"
21
+ end
12
22
  end
13
23
  end
14
24
  end
@@ -1,65 +1,104 @@
1
1
  require 'spec_helper'
2
2
 
3
- class Substance
4
- def initialize exists, description
5
- @exists = exists
6
- @description = description
7
- end
8
- def exist?(arg=nil)
9
- @exists
10
- end
11
- def inspect
12
- @description
13
- end
14
- end
15
-
16
- class SubstanceTester
17
- include RSpec::Matchers
18
- def initialize substance
19
- @substance = substance
20
- end
21
- def should_exist
22
- @substance.should exist
23
- end
24
- end
3
+ describe "exist matcher" do
4
+ context "when the object does not respond to #exist? or #exists?" do
5
+ subject { mock }
25
6
 
26
- describe "should exist" do
27
-
28
- before(:each) do
29
- @real = Substance.new true, 'something real'
30
- @imaginary = Substance.new false, 'something imaginary'
7
+ [:should, :should_not].each do |should_method|
8
+ describe "#{should_method} exist" do
9
+ it "raises an error" do
10
+ expect {
11
+ subject.send(should_method, exist)
12
+ }.to raise_error(NoMethodError)
13
+ end
14
+ end
15
+ end
31
16
  end
32
17
 
33
- describe "within an example group" do
34
-
35
- it "passes if target exists" do
36
- @real.should exist
37
- end
38
-
39
- it "passes if target exists with args" do
40
- @real.should exist('this arg')
41
- end
42
-
43
- it "fails if target does not exist" do
44
- lambda { @imaginary.should exist }.should fail
45
- end
46
-
47
- it "describes itself" do
48
- exist.description.should == "exist"
49
- end
50
-
51
- it "passes should_not exist if target doesn't exist" do
52
- lambda { @real.should_not exist }.should fail
18
+ [:exist?, :exists?].each do |predicate|
19
+ context "when the object responds to ##{predicate}" do
20
+ describe "should exist" do
21
+ it "passes if #{predicate}" do
22
+ mock(predicate => true).should exist
23
+ end
24
+
25
+ it "fails if not #{predicate}" do
26
+ expect {
27
+ mock(predicate => false).should exist
28
+ }.to fail_with(/expected .* to exist/)
29
+ end
30
+ end
31
+
32
+ describe "should not exist" do
33
+ it "passes if not #{predicate}" do
34
+ mock(predicate => false).should_not exist
35
+ end
36
+
37
+ it "fails if #{predicate}" do
38
+ expect {
39
+ mock(predicate => true).should_not exist
40
+ }.to fail_with(/expected .* not to exist/)
41
+ end
42
+ end
53
43
  end
54
44
  end
55
45
 
56
- describe "outside of an example group" do
46
+ context "when the object responds to #exist? and #exists?" do
47
+ context "when they both return falsey values" do
48
+ subject { mock(:exist? => false, :exists? => nil) }
49
+
50
+ describe "should_not exist" do
51
+ it "passes" do
52
+ subject.should_not exist
53
+ end
54
+ end
55
+
56
+ describe "should exist" do
57
+ it "fails" do
58
+ expect {
59
+ subject.should exist
60
+ }.to fail_with(/expected .* to exist/)
61
+ end
62
+ end
63
+ end
64
+
65
+ context "when they both return truthy values" do
66
+ subject { mock(:exist? => true, :exists? => "something true") }
67
+
68
+ describe "should_not exist" do
69
+ it "fails" do
70
+ expect {
71
+ subject.should_not exist
72
+ }.to fail_with(/expected .* not to exist/)
73
+ end
74
+ end
57
75
 
58
- it "passes if target exists" do
59
- real_tester = SubstanceTester.new @real
60
- real_tester.should_exist
76
+ describe "should exist" do
77
+ it "passes" do
78
+ subject.should exist
79
+ end
80
+ end
61
81
  end
62
82
 
83
+ context "when they return values with different truthiness" do
84
+ subject { mock(:exist? => true, :exists? => false) }
85
+
86
+ [:should, :should_not].each do |should_method|
87
+ describe "#{should_method} exist" do
88
+ it "raises an error" do
89
+ expect {
90
+ subject.send(should_method, exist)
91
+ }.to raise_error(/#exist\? and #exists\? returned different values/)
92
+ end
93
+ end
94
+ end
95
+ end
63
96
  end
64
97
 
98
+ it 'passes any provided arguments to the call to #exist?' do
99
+ object = mock
100
+ object.should_receive(:exist?).with(:foo, :bar) { true }
101
+
102
+ object.should exist(:foo, :bar)
103
+ end
65
104
  end
@@ -142,13 +142,13 @@ describe "should_not include(with, multiple, args)" do
142
142
  it "fails if the target includes all of the expected keys" do
143
143
  expect {
144
144
  { :a => 1, :b => 2 }.should_not include(:a, :b)
145
- }.to fail_matching(%Q|expected {:a=>1, :b=>2} not to include :a and :b|)
145
+ }.to fail_matching(%Q|expected #{{:a=>1, :b=>2}.inspect} not to include :a and :b|)
146
146
  end
147
147
 
148
148
  it "fails if the target includes some (but not all) of the expected keys" do
149
149
  expect {
150
150
  { :a => 1, :b => 2 }.should_not include(:d, :b)
151
- }.to fail_matching(%Q|expected {:a=>1, :b=>2} not to include :d and :b|)
151
+ }.to fail_matching(%Q|expected #{{:a=>1, :b=>2}.inspect} not to include :d and :b|)
152
152
  end
153
153
  end
154
154
 
@@ -218,7 +218,7 @@ describe "should_not include(:key => value)" do
218
218
  it "fails if target includes the key/value pair among others" do
219
219
  lambda {
220
220
  {:key => 'value', :other => 'different'}.should_not include(:key => 'value')
221
- }.should fail_matching(%Q|expected {:key=>"value", :other=>"different"} not to include {:key=>"value"}|)
221
+ }.should fail_matching(%Q|expected #{{:key=>"value", :other=>"different"}.inspect} not to include {:key=>"value"}|)
222
222
  end
223
223
 
224
224
  it "passes if target has a different value for key" do
@@ -256,31 +256,25 @@ describe "should include(:key1 => value1, :key2 => value2)" do
256
256
  it "fails if target has a different value for one of the keys" do
257
257
  lambda {
258
258
  {:a => 1, :b => 2}.should include(:a => 2, :b => 2)
259
- }.should fail_matching(%Q|expected {:a=>1, :b=>2} to include {:a=>2, :b=>2}|)
259
+ }.should fail_matching(%Q|expected #{{:a=>1, :b=>2}.inspect} to include #{{:a=>2, :b=>2}.inspect}|)
260
260
  end
261
261
 
262
262
  it "fails if target has a different value for both of the keys" do
263
263
  lambda {
264
264
  {:a => 1, :b => 1}.should include(:a => 2, :b => 2)
265
- }.should fail_matching(%Q|expected {:a=>1, :b=>1} to include {:a=>2, :b=>2}|)
265
+ }.should fail_matching(%Q|expected #{{:a=>1, :b=>1}.inspect} to include #{{:a=>2, :b=>2}.inspect}|)
266
266
  end
267
267
 
268
268
  it "fails if target lacks one of the keys" do
269
269
  lambda {
270
270
  {:a => 1, :b => 1}.should include(:a => 1, :c => 1)
271
- }.should fail_matching(%Q|expected {:a=>1, :b=>1} to include {:a=>1, :c=>1}|)
271
+ }.should fail_matching(%Q|expected #{{:a=>1, :b=>1}.inspect} to include #{{:a=>1, :c=>1}.inspect}|)
272
272
  end
273
273
 
274
274
  it "fails if target lacks both of the keys" do
275
- begin
275
+ lambda {
276
276
  {:a => 1, :b => 1}.should include(:c => 1, :d => 1)
277
- rescue Exception => e
278
- ensure
279
- e.message.should match(/expected \{:a=>1, :b=>1\} to include/)
280
- e.message.match(/include (.*)$/) do |m|
281
- eval(m[1]).should eq({:c=>1,:d=>1})
282
- end
283
- end
277
+ }.should fail_matching(%Q|expected #{{:a=>1, :b=>1}.inspect} to include #{{:c=>1, :d=>1}.inspect}|)
284
278
  end
285
279
  end
286
280
 
@@ -288,7 +282,7 @@ describe "should include(:key1 => value1, :key2 => value2)" do
288
282
  it "fails if the target does not contain the given hash" do
289
283
  lambda {
290
284
  ['a', 'b'].should include(:a => 1, :b => 1)
291
- }.should fail_matching(%Q|expected ["a", "b"] to include {:a=>1, :b=>1}|)
285
+ }.should fail_matching(%Q|expected ["a", "b"] to include #{{:a=>1, :b=>1}.inspect}|)
292
286
  end
293
287
 
294
288
  it "passes if the target contains the given hash" do
@@ -302,20 +296,20 @@ describe "should_not include(:key1 => value1, :key2 => value2)" do
302
296
  it "fails if target includes the key/value pairs" do
303
297
  lambda {
304
298
  {:a => 1, :b => 2}.should_not include(:a => 1, :b => 2)
305
- }.should fail_matching(%Q|expected {:a=>1, :b=>2} not to include {:a=>1, :b=>2}|)
299
+ }.should fail_matching(%Q|expected #{{:a=>1, :b=>2}.inspect} not to include #{{:a=>1, :b=>2}.inspect}|)
306
300
  end
307
301
 
308
302
  it "fails if target includes the key/value pairs among others" do
309
303
  hash = {:a => 1, :b => 2, :c => 3}
310
304
  lambda {
311
305
  hash.should_not include(:a => 1, :b => 2)
312
- }.should fail_matching(%Q|expected #{hash.inspect} not to include {:a=>1, :b=>2}|)
306
+ }.should fail_matching(%Q|expected #{hash.inspect} not to include #{{:a=>1, :b=>2}.inspect}|)
313
307
  end
314
308
 
315
309
  it "fails if target has a different value for one of the keys" do
316
310
  lambda {
317
311
  {:a => 1, :b => 2}.should_not include(:a => 2, :b => 2)
318
- }.should fail_matching(%Q|expected {:a=>1, :b=>2} not to include {:a=>2, :b=>2}|)
312
+ }.should fail_matching(%Q|expected #{{:a=>1, :b=>2}.inspect} not to include #{{:a=>2, :b=>2}.inspect}|)
319
313
  end
320
314
 
321
315
  it "passes if target has a different value for both of the keys" do
@@ -325,7 +319,7 @@ describe "should_not include(:key1 => value1, :key2 => value2)" do
325
319
  it "fails if target lacks one of the keys" do
326
320
  lambda {
327
321
  {:a => 1, :b => 1}.should_not include(:a => 1, :c => 1)
328
- }.should fail_matching(%Q|expected {:a=>1, :b=>1} not to include {:a=>1, :c=>1}|)
322
+ }.should fail_matching(%Q|expected #{{:a=>1, :b=>1}.inspect} not to include #{{:a=>1, :c=>1}.inspect}|)
329
323
  end
330
324
 
331
325
  it "passes if target lacks both of the keys" do
@@ -341,7 +335,7 @@ describe "should_not include(:key1 => value1, :key2 => value2)" do
341
335
  it "fails if the target contains the given hash" do
342
336
  lambda {
343
337
  ['a', { :a => 1, :b => 2 } ].should_not include(:a => 1, :b => 2)
344
- }.should fail_matching(%Q|expected ["a", {:a=>1, :b=>2}] not to include {:a=>1, :b=>2}|)
338
+ }.should fail_matching(%Q|expected #{["a", {:a=>1, :b=>2}].inspect} not to include #{{:a=>1, :b=>2}.inspect}|)
345
339
  end
346
340
  end
347
341
  end
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-expectations
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 27
4
5
  prerelease: false
5
6
  segments:
6
7
  - 2
7
- - 4
8
+ - 5
8
9
  - 0
9
- version: 2.4.0
10
+ version: 2.5.0
10
11
  platform: ruby
11
12
  authors:
12
13
  - David Chelimsky
@@ -15,22 +16,23 @@ autorequire:
15
16
  bindir: bin
16
17
  cert_chain: []
17
18
 
18
- date: 2011-01-02 00:00:00 -06:00
19
+ date: 2011-02-05 00:00:00 -06:00
19
20
  default_executable:
20
21
  dependencies:
21
22
  - !ruby/object:Gem::Dependency
22
- name: diff-lcs
23
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
24
  none: false
25
25
  requirements:
26
26
  - - ~>
27
27
  - !ruby/object:Gem::Version
28
+ hash: 23
28
29
  segments:
29
30
  - 1
30
31
  - 1
31
32
  - 2
32
33
  version: 1.1.2
33
34
  type: :runtime
35
+ name: diff-lcs
34
36
  prerelease: false
35
37
  version_requirements: *id001
36
38
  description: rspec expectations (should[_not] and matchers)
@@ -46,14 +48,14 @@ files:
46
48
  - .gitignore
47
49
  - Gemfile
48
50
  - Guardfile
49
- - History.markdown
50
51
  - License.txt
51
52
  - README.md
52
53
  - Rakefile
53
- - Upgrade.markdown
54
54
  - cucumber.yml
55
55
  - features/.nav
56
+ - features/Changelog.md
56
57
  - features/README.markdown
58
+ - features/Upgrade.md
57
59
  - features/built_in_matchers/be.feature
58
60
  - features/built_in_matchers/be_within.feature
59
61
  - features/built_in_matchers/equality.feature
@@ -172,7 +174,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
172
174
  requirements:
173
175
  - - ">="
174
176
  - !ruby/object:Gem::Version
175
- hash: 2554060302736803438
177
+ hash: 3
176
178
  segments:
177
179
  - 0
178
180
  version: "0"
@@ -181,7 +183,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
181
183
  requirements:
182
184
  - - ">="
183
185
  - !ruby/object:Gem::Version
184
- hash: 2554060302736803438
186
+ hash: 3
185
187
  segments:
186
188
  - 0
187
189
  version: "0"
@@ -191,9 +193,11 @@ rubyforge_project: rspec
191
193
  rubygems_version: 1.3.7
192
194
  signing_key:
193
195
  specification_version: 3
194
- summary: rspec-expectations-2.4.0
196
+ summary: rspec-expectations-2.5.0
195
197
  test_files:
198
+ - features/Changelog.md
196
199
  - features/README.markdown
200
+ - features/Upgrade.md
197
201
  - features/built_in_matchers/be.feature
198
202
  - features/built_in_matchers/be_within.feature
199
203
  - features/built_in_matchers/equality.feature