Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
base fork: rspec/rspec-mocks
...
head fork: rspec/rspec-mocks
Commits on Jan 05, 2012
@dchelimsky dchelimsky bump to 2.8.0 ea8cc1f
Commits on Jan 26, 2012
@justinko justinko Allow a `as_null_object` to be passed to `with`. Closes #98 de283b3
Commits on Jan 29, 2012
@coreyhaines coreyhaines Better message if #and_raise exception type requires constructor params 6fe4168
@coreyhaines coreyhaines Make name of sample exception a bit more clear as to its purpose b92f2cc
Commits on Jan 30, 2012
@justinko justinko Don't hit `__mock_proxy` unless you need to. This avoids a Rubby 1.8.…
…7 Proc equality bug: https://gist.github.com/1702877

This commit fixes the build for 1.8.7
9a201da
@dchelimsky dchelimsky Merge pull request #100 from coreyhaines/and_raise_big_arity_construc…
…tor_better_message

Better message if #and_raise exception type requires constructor params

- Fixes #99.
7ce8c6f
@dchelimsky dchelimsky More detailed error message when and_raise gets a class whose constru…
…ctor requires 1 or more args.

- #99, #100.
1f28dcd
@dchelimsky dchelimsky clean up some specs 5897343
Commits on Feb 02, 2012
@nruth nruth Use the null object, rather than re-assigning another double 9a095fb
Commits on Feb 03, 2012
@dchelimsky dchelimsky Merge pull request #104 from nruth/patch-1
Use the null object, rather than re-assigning another double
f999770
Commits on Feb 04, 2012
@aubreyrhodes aubreyrhodes Fixing blocks not being passed to stubs f0c7643
Commits on Feb 05, 2012
@dchelimsky dchelimsky Merge pull request #105 from aubreyrhodes/fix_stub_not_passing_block
Fixing blocks not being passed to stubs
42b3ef7
@dchelimsky dchelimsky Simplify some examples.
- #105.
0b4eab2
@dchelimsky dchelimsky Changelog for #105 6743cd7
Commits on Feb 08, 2012
@preethiramdev preethiramdev Making ordering common to all object per spec 221594b
@preethiramdev preethiramdev Adding spec to test the ordering is reset each time c59981d
@dchelimsky dchelimsky Merge pull request #106 from preethiramdev/issue-101
Support order constraints across objects
b4e6746
@dchelimsky dchelimsky Changelog for #101, #106 35f67e6
@dchelimsky dchelimsky dev: restore random ordering 0ce8c71
@dchelimsky dchelimsky clean up order constraint spec 3f94b50
@dchelimsky dchelimsky clear expectation_ordering rather than creating a new one for each ex…
…ample
c8b9948
@dchelimsky dchelimsky some mocks are not mocks 17c259e
Commits on Feb 09, 2012
@dchelimsky dchelimsky refactoring: those syms are messages dce2d2c
Commits on Feb 11, 2012
@justinko justinko No need to require yaml. 56a5ccd
Commits on Feb 17, 2012
@preethiramdev preethiramdev Initializing message expectation args to match any args 917dca2
@dchelimsky dchelimsky Merge pull request #109 from c42engineering/expectation_args
Initialize child message expectation args to match any args (See #103)
408a09c
@dchelimsky dchelimsky Changelog for #109 59c41e8
@dchelimsky dchelimsky minor refactoring: rename args_expectation to argument_expectation (i…
…nternal)
4c32db1
@dchelimsky dchelimsky clean up and enhance spec for mixing stubs and expectations 117f2cb
Commits on Feb 20, 2012
@preethiramdev preethiramdev should receiving stubbed atleast_once removes matching stub 235c8cc
Commits on Feb 24, 2012
@preethiramdev preethiramdev Fixing method called on nil warning 251bf2a
@dchelimsky dchelimsky Merge pull request #110 from c42engineering/issue-103
should_receive(:x).at_least_once clears any stubs on :x

- Fixes #103
6e23ca9
@dchelimsky dchelimsky Revert "Merge pull request #110 from c42engineering/issue-103"
Turns out this change is significantly backward-incompatible that we're
going to have to wait for rspec-mocks-3 to release it (or similar)

This reverts commit 6e23ca9, reversing
changes made to 117f2cb.
3bb19cb
Commits on Feb 27, 2012
@dchelimsky dchelimsky check if @_null_object is defined to avoid warning when it is not 185d47e
Commits on Mar 05, 2012
Nathan Long Explained why `before(:all)` won't work for stubs. 0815a4a
Commits on Mar 12, 2012
@dchelimsky dchelimsky bump to 2.9.0.rc1 c83ae1c
@dchelimsky dchelimsky restore some gems to Gemfile e7d92e4
@dchelimsky dchelimsky ci: don't need to exclude development env any longer 377c32b
@dchelimsky dchelimsky align gemspec with other rspec libs 21d21ce
@dchelimsky dchelimsky bump to 2.9.0.rc2 06ce1ab
Commits on Mar 17, 2012
@dchelimsky dchelimsky bump to 2.9.0 e62d381
@dchelimsky dchelimsky dev: add a script to download ruby-debug-base19-0.11.26.gem and linec…
…ache19-0.5.13.gem to a local cache

[ci skip]
eb5da85
@dchelimsky dchelimsky only one ref to yard please c8a5ef5
Commits on Mar 21, 2012
@myronmarston myronmarston Extract mock logic into TestDouble module.
This allows objects to be treated as a pure test double without needing to subclass RSpec::Mocks::Mock.

Closes #117.
af3f296
Commits on Mar 28, 2012
@maeve maeve and_raise should support intentionally raising an ArgumentError 38ddf48
@myronmarston myronmarston Merge pull request #121 from maeve/fix-raising-argumenterrors
and_raise should support intentionally raising an ArgumentError
2478a16
Commits on Apr 16, 2012
@dchelimsky dchelimsky fail fast when an exactly or at_most expectation is exceeded fb9c76c
@dchelimsky dchelimsky minor refactoring for clarity 381c7c8
@dchelimsky dchelimsky a little more refactoring 764680c
@dchelimsky dchelimsky Refactoring: collapse concepts of method_block and return_block into
implementation.
f4f4ec3
Commits on Apr 17, 2012
@dchelimsky dchelimsky Make the fact that you can set message expectations on class objects
more obvious.

- Closes #125.

[ci skip]
155cef3
Commits on Apr 18, 2012
@CoryFoy CoryFoy Correct spelling of "Responses" 40a2a0f
@justinko justinko Merge pull request #126 from CoryFoy/patch-1
Correct spelling of "Responses"
668ad3d
Commits on Apr 21, 2012
@dchelimsky dchelimsky one line on one line fa13314
Commits on Apr 22, 2012
@dchelimsky dchelimsky shorten file extension 707f515
@dchelimsky dchelimsky align config files across rspec projects 4b47e54
@dchelimsky dchelimsky dev: align Gemfiles across rspec projects b4204fb
Commits on May 01, 2012
@dchelimsky dchelimsky update yard to 0.8 1e4c1e6
Commits on May 04, 2012
@dchelimsky dchelimsky refactor subject out of one spec 604dc5d
@dchelimsky dchelimsky update changelog for 2.10 release 4862911
@dchelimsky dchelimsky bump to 2.10.0 6732d62
@dchelimsky dchelimsky rename some things in a spec d4b983c
@dchelimsky dchelimsky Fixed bug where at_least(0) failed when message was received
- Fixes #132
6b188a8
@dchelimsky dchelimsky Make sure at_least(0) passes even when never called
- Fixes #132 again
73be258
Commits on May 05, 2012
@dchelimsky dchelimsky dev: config for :focus 877dfa6
@dchelimsky dchelimsky dev: refactor a spec 2e9d990
@dchelimsky dchelimsky should_not_receive ignores and_return
- See #132
70aaf1c
@dchelimsky dchelimsky bump to 2.10.1 112b430
Commits on May 09, 2012
@dchelimsky dchelimsky Expose ArgumentListMatcher as a formal API
- supports use by 3rd party mock frameworks like Surrogate.
5d3e1dc
Commits on May 13, 2012
@dchelimsky dchelimsky spec refactoring: move shared examples to the one spec using them. eb12635
@dchelimsky dchelimsky dev: use :unless filter instead of a global exclusion filter e03d66b
@dchelimsky dchelimsky dev: rename context 671076d
@dchelimsky dchelimsky spec refactoring: rename subject with intention revealing name
- even though 'object' is no less generic than 'subject', it makes it
  more clear that we're talking about a generic object.
eebee30
Commits on May 17, 2012
@dchelimsky dchelimsky Merge pull request #115 from nathanl/master
Explained why `before(:all)` won't work for stubs.
2a69b71
@myronmarston myronmarston Fix a regression.
When doing something like:

  double.stub(:foo).and_return(a, b)
  double.should_receive(:foo).once { a }
  double.foo

...it used to work, but in 2.10 it raises a NoMethodError (#size).
b44db2a
Commits on May 19, 2012
@kaiwren kaiwren Replicating Issue #120 7d85604
Commits on May 20, 2012
@kaiwren kaiwren Issue #120: Under any_instance, modify #dup to remove the mock proxy 5de6500
Commits on May 22, 2012
@myronmarston myronmarston Update changelog. a11fcdc
Commits on May 23, 2012
@justinko justinko Merge pull request #138 from c42engineering/issue_120
Issue #120
bab88c7
@justinko justinko changelog [ci skip] c64c605
@justinko justinko No need for an "issue specific" spec file. aca2b40
@kaiwren kaiwren Replicated Issue #124 419b64a
@aakashd aakashd issue #124: adding support for any_instance.should_not_receive 6e858e4
@dchelimsky dchelimsky Merge pull request #139 from c42engineering/issue124
add support for any_instance.should_not_receive
b38da74
Commits on May 24, 2012
@dchelimsky dchelimsky `should_receive(x).at_least(:once).and_return(y)` always returns y ev…
…en if x is already stubbed

    widget.stub(:count => 1)
    widget.should_receive(:count).at_least(:once).and_return(2)
    widget.count #=> 2
    widget.count #=> 2

If there is no return value set, it will fall back to the stub value:

    widget.stub(:count => 1)
    widget.should_receive(:count).at_least(:once)
    widget.count #=> 1
    widget.count #=> 1

- Fixes #142
dbe44e6
Commits on May 25, 2012
@brynary brynary Add Code Climate badge 8879661
@dchelimsky dchelimsky Merge pull request #143 from brynary/codeclimate-badge
Add Code Climate badge
ea1053b
Commits on May 31, 2012
@pje pje `:%s/ducktype/duck_type/g` 5edfe94
@dchelimsky dchelimsky Merge pull request #145 from pjellis/patch-1
[typo] underscore-ize 'ducktype' in README.md
4b70b45
Commits on Jun 02, 2012
@myronmarston myronmarston First pass at implementing constant stubbing.
This is almost copied verbatim from rspec-fire.

For #144.
9c44b28
@myronmarston myronmarston Always restore original constants.
The original logic from rspec-fire did not restore original constants
if the user changed them in the example after stubbing them, but after
talking it over with @dchelimsky and @garyberhnardt we've decided to
be consistent and always restore them.

For #144.
9a7c90d
@myronmarston myronmarston Remove the bang from our #stub! methods.
I'm not really sure why I used them when I wrote this in rspec-fire;
given there were not corresponding bang-less methods, it didn't
really make sense.

For #144.
2b4fad7
@myronmarston myronmarston Fix a constant stubbing edge case.
stub_const("A::B::C", whatever) cannot work if A::B is defined
but A::B is not a module.

For #144.
d1669a8
@myronmarston myronmarston Remove unused method.
For #144.
f77357e
@myronmarston myronmarston Add API docs for new constant stubbing code.
For #144.
ecfb7f6
@myronmarston myronmarston Add cukes for new stub_const feature.
Closes #144.
e31f4a4
Commits on Jun 03, 2012
@myronmarston myronmarston Fix typo pointed out by @justinko. 7ab3d61
@myronmarston myronmarston Replace duplicated README content with a link.
As per the conversation with @justinko and @dchelimsky:
#146 (comment)

Note that this link is broken for now because this hasn't
yet been merged into master. But I figured it was better
not to use a working link just to the branch since that
branch will likely be deleted in the near future.
0bd5850
@myronmarston myronmarston Refactor constant stubbers a bit.
This is based on @justinko's suggestions:
#146 (comment)
2cbf9c4
Commits on Jun 04, 2012
@myronmarston myronmarston Remove unused helper method. 22c2049
Neha Kumari Issue #123: Improved error message when user forgets to stub a method…
… with default behavior.
409955f
@dchelimsky dchelimsky Merge pull request #147 from c42engineering/issue123
Issue #123: Improved error message when user forgets to stub a method with a default.
1ebc698
@dchelimsky dchelimsky Use the improved message from the prev commit for stubs, not message …
…expectations.

- Closes #147, #123.
49ce496
Commits on Jun 07, 2012
@myronmarston myronmarston Return stubbed value rather than original value from stub_const.
This allows chaining:

  stub_const("Foo", double).stub(:foo)
f94e6b2
@myronmarston myronmarston Add `Constant.original` API to query rspec-mocks about stubbed consta…
…nts.

This needs to be documented, but I want to get feedback from others before spending effort on that.
211743d
Commits on Jun 08, 2012
@myronmarston myronmarston Make Constant.unstubbed private since it's an internal API. fd595a8
@myronmarston myronmarston Refactor away the use of #its.
#its is going away in rspec-core at some future point, so we shouldn't use it here.
722529e
Commits on Jun 11, 2012
@myronmarston myronmarston Add API docs for Constant.original query API. 3b63c51
@myronmarston myronmarston Merge pull request #146 from rspec/constant-stubbing f5c63c3
@myronmarston myronmarston Mention new stub_const feature in changelog. f04d527
Commits on Jun 15, 2012
@dchelimsky dchelimsky refactor: rename ExpectationChain to PositiveExpectationChain
Also extract base ExpectationChain.
980b98f
Commits on Jun 18, 2012
@myronmarston myronmarston Prevent infinite loop when interpolating a null double as an integer …
…into a string.

Closes #154.
f8cae14
@myronmarston myronmarston Weird, 1.9.2 acts differently here than 1.9.3 and 1.8.7. b96dd92
Commits on Jun 24, 2012
@myronmarston myronmarston Fix `should_receive` to preserve null object behavior.
Given a case like:

   double = mock.as_null_object
   double.should_receive(:bar)

...`double.bar` was returning nil when it should return the double itself, since that's the expected null object behavior and no implementation was provided for the mock expectation.

Closes #155.
a5f296e
Commits on Jun 25, 2012
@myronmarston myronmarston Cleanup whitespace.
(Actually, I'm mostly doing this just to trigger a travis build. A
recent change in rspec-expectations[1] broke the rspec-mocks
travis build, and now that it's fixed[2], I want to see that the
rspec-mocks build is passing.  I figured I may as well make a useful
but non functional change while I'm at it, though).

[1] rspec/rspec-expectations@4024344#commitcomment-1496381
[2] rspec/rspec-expectations@a3e2839
28b284d
Commits on Jun 27, 2012
@amarshall amarshall Raise RuntimeError instead by default in and_raise to match Ruby default dc5e1a7
@myronmarston myronmarston Merge pull request #156 from amarshall/master
Raise RuntimeError instead of Exception by default in and_raise to match Ruby's default
c3539b9
@myronmarston myronmarston Update changelog. aa179ed
Commits on Jul 07, 2012
@dchelimsky dchelimsky bump to 2.11.0 e6bba62
@dchelimsky dchelimsky improve automation for publishing to relishapp.com b35b5b4
Commits on Jul 09, 2012
@myronmarston myronmarston Fix edge case bug exposed w/ `should_receive` on a null object w/ a p…
…revious stub.

In a case like:

  double = stub.as_null_object
  double.stub(:foo => "bar")
  double.should_receive(:foo)
  double.foo

..it used to return "bar", but due to my changes in a5f296e it was returning `self`.
26f6476
Commits on Jul 10, 2012
@myronmarston myronmarston 2.11.1 release. 24090f8
@ugisozols ugisozols Add missing 'be's to the README. 5288070
@justinko justinko Merge pull request #161 from ugisozols/master
Add missing 'be's to the README.
d9169ca
Commits on Jul 11, 2012
@myronmarston myronmarston Fix ruby warnings.
- lib/rspec/mocks/error_generator.rb:32: warning: assigned but unused variable - expected_args
- lib/rspec/mocks/error_generator.rb:33: warning: assigned but unused variable - actual_args
- lib/rspec/mocks/stub_const.rb:8: warning: shadowing outer local variable - name
- lib/rspec/mocks/stub_const.rb:12: warning: shadowing outer local variable - name
- spec/rspec/mocks/stub_const_spec.rb:60: warning: assigned but unused variable - orig_value
- lib/rspec/mocks/stub_const.rb:233: warning: instance variable @registered_with_mocks_space not initialized


Closes #162.
f36ad4d
Commits on Aug 01, 2012
@dchelimsky dchelimsky Don't modify dup on classes that don't support dup
Fixes #168.
b828604
Commits on Aug 03, 2012
@daneget daneget Fix any_instance to handle methods defined on superclasses.
Previously, the recorder implementation created a SystemStackError.

Closes #152.
1272c8a
@myronmarston myronmarston Cleanup spec a bit. 306ee36
@myronmarston myronmarston Update changelog. f1a2682
Commits on Aug 05, 2012
@dchelimsky dchelimsky align the feature READMEs for stubs and message expectations e2826c6
@dchelimsky dchelimsky dev: update optional dev dependencies 37e095c
Commits on Aug 10, 2012
@jredville jredville fix formatting for relish df607ea
@alindeman alindeman Merge pull request #173 from jredville/master
Clean up formatting for Relish
bb21bc1
Commits on Aug 11, 2012
@myronmarston myronmarston Fix use of const_defined? and const_get so it ignores top-level const…
…ants.

I didn't realize this previously, but these methods can pick up a top-level
constant when you don't intend it (e.g. ::Hash when checking MyGem.const_defined?("Hash")).
deec990
Commits on Aug 12, 2012
@myronmarston myronmarston 2.11.2 release. e7bd234
Commits on Sep 17, 2012
@myronmarston myronmarston Merge bug-fix commits from master into 2-11-maintenance.
This is in prep for the 2.11.3 release.

For future reference, I used the following steps to do this, starting
from a checkout of master:

* `git checkout -b bug_fixes_from_master`
* `git rebase -i v2.11.0`
* Removed the non-bug fix commits from the list of commits
  during interactive rebase.
* `git checkout 2-11-maintenance`
* `git merge bug_fixes_from_master`

Conflicts:
	Changelog.md
	Gemfile-custom.sample
	lib/rspec/mocks/any_instance/recorder.rb
	lib/rspec/mocks/stub_const.rb
	spec/rspec/mocks/any_instance_spec.rb
76a635c
Commits on Sep 19, 2012
@myronmarston myronmarston Fix confusing error message.
When a class method was mocked and it was called an extra time with the wrong arguments, the error being raised was:

"NoMethodError: undefined method `bar' for Object:Class"

...which was very confusing.
767acd0
Commits on Sep 20, 2012
@myronmarston myronmarston 2.11.3 release. d0bcce4