rspec-mocks 2.3.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,15 @@
1
1
  ## rspec-mocks release history (incomplete)
2
2
 
3
+ ### 2.4.0 / 2011-01-02
4
+
5
+ [full changelog](http://github.com/rspec/rspec-mocks/compare/v2.3.0...v2.4.0)
6
+
7
+ No functional changes in this release, which was made to align with the
8
+ rspec-core-2.4.0 release.
9
+
3
10
  ### 2.3.0 / 2010-12-12
4
11
 
5
- [full changelog](http://github.com/rspec/rspec-mocks/compare/v2.2.1...v2.3.0)
12
+ [full changelog](http://github.com/rspec/rspec-mocks/compare/v2.2.0...v2.3.0)
6
13
 
7
14
  * Bug fixes
8
15
  * Fix our Marshal extension so that it does not interfere with objects that
data/Rakefile CHANGED
@@ -61,10 +61,10 @@ Rake::RDocTask.new do |rdoc|
61
61
  rdoc.rdoc_files.include('lib/**/*.rb')
62
62
  end
63
63
 
64
- desc "Push cukes to relishapp using the relish-client-gem"
64
+ desc "Push docs/cukes to relishapp using the relish-client-gem"
65
65
  task :relish, :version do |t, args|
66
66
  raise "rake relish[VERSION]" unless args[:version]
67
- sh "relish push --organization rspec --project rspec-mocks -v #{args[:version]}"
67
+ sh "relish push rspec/rspec-mocks:#{args[:version]}"
68
68
  end
69
69
 
70
70
  task :default => [:spec, :cucumber]
@@ -0,0 +1,11 @@
1
+ - method_stubs:
2
+ - simple_return_value.feature
3
+ - stub_implementation.feature
4
+ - stub_chain.feature
5
+ - message_expectations:
6
+ - expect_message.feature
7
+ - block_local_expectations.feature.pending
8
+ - warn_when_expectation_is_set_on_nil.feature
9
+ - outside_rspec:
10
+ - configuration.feature
11
+ - standalone.feature
@@ -1,6 +1,6 @@
1
1
  rspec-mocks is used to create dynamic "doubles", which stand in for real
2
- objects in examples. You can set message expectations on them (i.e. mock
3
- methods), and/or stub return values for arbitrary messages:
2
+ objects in examples. You can stub return values and/or set message
3
+ expectations:
4
4
 
5
5
  describe Account do
6
6
  context "when closed" do
@@ -16,9 +16,6 @@ methods), and/or stub return values for arbitrary messages:
16
16
  end
17
17
  end
18
18
 
19
- Message expectations like the one in the example above are verified at
20
- the end of each example.
21
-
22
19
  ## Issues
23
20
 
24
21
  The documentation for rspec-mocks is a work in progress. We'll be adding
@@ -0,0 +1,59 @@
1
+ We're working on improving these docs. In the mean time, here's a cheat sheet
2
+ to cover the basics.
3
+
4
+ # create a double
5
+ obj = double()
6
+
7
+ # expect a message
8
+ obj.should_receive(:message)
9
+
10
+ # specify a return value
11
+ obj.should_receive(:message) { 'this is the value to return' }
12
+
13
+ ### Argument constraints
14
+
15
+ #### Explicit arguments
16
+
17
+ obj.should_receive(:message).with('an argument')
18
+ obj.should_receive(:message).with('more_than', 'one_argument')
19
+
20
+ #### Argument matchers
21
+
22
+ obj.should_receive(:message).with(anything())
23
+ obj.should_receive(:message).with(an_instance_of(Money))
24
+ obj.should_receive(:message).with(hash_including(:a => 'b'))
25
+
26
+ #### Regular expressions
27
+
28
+ obj.should_receive(:message).with(/abc/)
29
+
30
+ ### Counts
31
+
32
+ obj.should_receive(:message).once
33
+ obj.should_receive(:message).twice
34
+ obj.should_receive(:message).exactly(3).times
35
+
36
+ obj.should_receive(:message).at_least(:once)
37
+ obj.should_receive(:message).at_least(:twice)
38
+ obj.should_receive(:message).at_least(n).times
39
+
40
+ obj.should_receive(:message).at_most(:once)
41
+ obj.should_receive(:message).at_most(:twice)
42
+ obj.should_receive(:message).at_most(n).times
43
+
44
+ ### Raising/Throwing
45
+
46
+ obj.should_receive(:message) { raise "this error" }
47
+ obj.should_receive(:message) { throw :this_symbol }
48
+
49
+ ### Ordering
50
+
51
+ obj.should_receive(:one).ordered
52
+ obj.should_receive(:two).ordered
53
+
54
+ ### Arbitrary handling
55
+
56
+ obj.should_receive(:message) do |arg1, arg2|
57
+ # set expectations about the args in this block
58
+ # and set a return value
59
+ end
@@ -1,4 +1,4 @@
1
- Feature: Expect a message
1
+ Feature: expect a message
2
2
 
3
3
  Use should_receive() to set an expectation that a receiver should receive a
4
4
  message before the example is completed.
@@ -1,4 +1,4 @@
1
- Feature: Warn when expectation is set on nil
1
+ Feature: warn when expectation is set on nil
2
2
 
3
3
  Scenario: nil instance variable
4
4
  Given a file named "example_spec.rb" with:
@@ -0,0 +1,40 @@
1
+ We're working on improving these docs. In the mean time, here's a cheat sheet
2
+ to cover the basics.
3
+
4
+ # create a double
5
+ obj = double()
6
+
7
+ # stub a method
8
+ obj.stub(:message) # returns obj
9
+
10
+ # specify a return value
11
+ obj.stub(:message) { 'this is the value to return' }
12
+
13
+ ### Argument constraints
14
+
15
+ #### Explicit arguments
16
+
17
+ obj.stub(:message).with('an argument')
18
+ obj.stub(:message).with('more_than', 'one_argument')
19
+
20
+ #### Argument matchers
21
+
22
+ obj.stub(:message).with(anything())
23
+ obj.stub(:message).with(an_instance_of(Money))
24
+ obj.stub(:message).with(hash_including(:a => 'b'))
25
+
26
+ #### Regular expressions
27
+
28
+ obj.stub(:message).with(/abc/)
29
+
30
+ ### Raising/Throwing
31
+
32
+ obj.stub(:message) { raise "this error" }
33
+ obj.stub(:message) { throw :this_symbol }
34
+
35
+ ### Arbitrary handling
36
+
37
+ obj.stub(:message) do |arg1, arg2|
38
+ # set expectations about the args in this block
39
+ # and set a return value
40
+ end
@@ -1,6 +1,6 @@
1
- Feature: Stub with simple return value
1
+ Feature: stub with a simple return value
2
2
 
3
- Use the stub() method on a test double or a real object to tell the object to
3
+ Use the `stub` method on a test double or a real object to tell the object to
4
4
  return a value (or values) in response to a given message. If the message is
5
5
  never received, nothing happens.
6
6
 
@@ -1,23 +1,23 @@
1
- Feature: Stub a chain of methods
1
+ Feature: stub a chain of methods
2
2
 
3
- The stub_chain method lets you to stub a chain of methods in one statement.
3
+ The `stub_chain` method lets you to stub a chain of methods in one statement.
4
4
  Method chains are considered a design smell, but it's not really the method
5
5
  chain that is the problem - it's the dependency chain represented by a chain
6
6
  of messages to different objects:
7
7
 
8
- foo.get_bar.get_baz
8
+ foo.get_bar.get_baz
9
9
 
10
- This is a Law of Demeter violation if get_bar() returns an object other than
11
- foo, and get_baz() returns yet another object.
10
+ This is a Law of Demeter violation if `get_bar` returns an object other than
11
+ `foo`, and `get_baz` returns yet another object.
12
12
 
13
13
  Fluent interfaces look similar from a caller's perspective, but don't
14
14
  represent a dependency chain (the caller depends only on the object it is
15
15
  calling). Consider this common example from Ruby on Rails:
16
16
 
17
- Article.recent.by(current_user)
17
+ Article.recent.by(current_user)
18
18
 
19
- The recent() and by() methods return the same object, so this is not
20
- a Law of Demeter violation.
19
+ The `recent` and `by` methods return the same object, so this is not a Law of
20
+ Demeter violation.
21
21
 
22
22
  Scenario: stub a chain of methods
23
23
  Given a file named "stub_chain_spec.rb" with:
@@ -1,4 +1,4 @@
1
- Feature: Stub with substitute implementation
1
+ Feature: stub with substitute implementation
2
2
 
3
3
  You can stub an implementation of a method (a.k.a. fake) by passing a block
4
4
  to the stub() method.
@@ -1,4 +1,4 @@
1
- Feature: Configure any test framework to use rspec-mocks
1
+ Feature: configure any test framework to use rspec-mocks
2
2
 
3
3
  Test frameworks that want to use rspec-mocks can use
4
4
  RSpec::Mocks::setup(self) to hook into rspec-mocks. Doing so adds the
@@ -4,7 +4,7 @@ Feature: standalone
4
4
  outside the RSpec environment. This is especially useful for
5
5
  exploring rspec-mocks in irb.
6
6
 
7
- Scenario: stub outside rspec
7
+ Scenario: method stub outside rspec
8
8
  Given a file named "example.rb" with:
9
9
  """
10
10
  require "rspec/mocks/standalone"
@@ -1,7 +1,7 @@
1
1
  module RSpec # :nodoc:
2
2
  module Mocks # :nodoc:
3
3
  module Version # :nodoc:
4
- STRING = '2.3.0'
4
+ STRING = '2.4.0'
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-mocks
3
3
  version: !ruby/object:Gem::Version
4
- hash: 3
5
4
  prerelease: false
6
5
  segments:
7
6
  - 2
8
- - 3
7
+ - 4
9
8
  - 0
10
- version: 2.3.0
9
+ version: 2.4.0
11
10
  platform: ruby
12
11
  authors:
13
12
  - David Chelimsky
@@ -16,7 +15,7 @@ autorequire:
16
15
  bindir: bin
17
16
  cert_chain: []
18
17
 
19
- date: 2010-12-12 00:00:00 -06:00
18
+ date: 2011-01-02 00:00:00 -06:00
20
19
  default_executable:
21
20
  dependencies: []
22
21
 
@@ -41,15 +40,18 @@ files:
41
40
  - Upgrade.markdown
42
41
  - autotest/discover.rb
43
42
  - cucumber.yml
43
+ - features/.nav
44
44
  - features/README.markdown
45
+ - features/message_expectations/README.md
45
46
  - features/message_expectations/block_local_expectations.feature.pending
46
47
  - features/message_expectations/expect_message.feature
47
48
  - features/message_expectations/warn_when_expectation_is_set_on_nil.feature
49
+ - features/method_stubs/README.md
50
+ - features/method_stubs/simple_return_value.feature
51
+ - features/method_stubs/stub_chain.feature
52
+ - features/method_stubs/stub_implementation.feature
48
53
  - features/outside_rspec/configuration.feature
49
54
  - features/outside_rspec/standalone.feature
50
- - features/stubs/simple_return_value.feature
51
- - features/stubs/stub_chain.feature
52
- - features/stubs/stub_implementation.feature
53
55
  - features/support/env.rb
54
56
  - lib/rspec/mocks.rb
55
57
  - lib/rspec/mocks/argument_expectation.rb
@@ -130,7 +132,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
130
132
  requirements:
131
133
  - - ">="
132
134
  - !ruby/object:Gem::Version
133
- hash: 3
135
+ hash: 1914883193122525774
134
136
  segments:
135
137
  - 0
136
138
  version: "0"
@@ -139,7 +141,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
139
141
  requirements:
140
142
  - - ">="
141
143
  - !ruby/object:Gem::Version
142
- hash: 3
144
+ hash: 1914883193122525774
143
145
  segments:
144
146
  - 0
145
147
  version: "0"
@@ -149,17 +151,19 @@ rubyforge_project: rspec
149
151
  rubygems_version: 1.3.7
150
152
  signing_key:
151
153
  specification_version: 3
152
- summary: rspec-mocks-2.3.0
154
+ summary: rspec-mocks-2.4.0
153
155
  test_files:
154
156
  - features/README.markdown
157
+ - features/message_expectations/README.md
155
158
  - features/message_expectations/block_local_expectations.feature.pending
156
159
  - features/message_expectations/expect_message.feature
157
160
  - features/message_expectations/warn_when_expectation_is_set_on_nil.feature
161
+ - features/method_stubs/README.md
162
+ - features/method_stubs/simple_return_value.feature
163
+ - features/method_stubs/stub_chain.feature
164
+ - features/method_stubs/stub_implementation.feature
158
165
  - features/outside_rspec/configuration.feature
159
166
  - features/outside_rspec/standalone.feature
160
- - features/stubs/simple_return_value.feature
161
- - features/stubs/stub_chain.feature
162
- - features/stubs/stub_implementation.feature
163
167
  - features/support/env.rb
164
168
  - spec/rspec/mocks/and_yield_spec.rb
165
169
  - spec/rspec/mocks/any_number_of_times_spec.rb