This repository has been archived by the owner on Nov 30, 2024. It is now read-only.
Releases: rspec/rspec-mocks
Releases · rspec/rspec-mocks
v2.14.6
2.14.6 / 2014-02-20
Bug Fixes:
- Ensure
any_instance
method stubs and expectations are torn down regardless of
expectation failures. (Sam Phippen)
3.0.0.beta2
3.0.0.beta2 / 2014-02-17
Breaking Changes for 3.0.0:
- Rename
RSpec::Mocks::Mock
toRSpec::Mocks::Double
. (Myron Marston) - Change how to integrate rspec-mocks in other test frameworks. You now
need to includeRSpec::Mocks::ExampleMethods
in your test context.
(Myron Marston) - Prevent RSpec mocks' doubles and partial doubles from being used outside of
the per-test lifecycle (e.g. from abefore(:all)
hook). (Sam Phippen) - Remove the
host
argument ofRSpec::Mocks.setup
. Instead
RSpec::Mocks::ExampleMethods
should be included directly in the scope where
RSpec's mocking capabilities are used. (Sam Phippen) - Make test doubles raise errors if you attempt to use them after they
get reset, to help surface issues when you accidentally retain
references to test doubles and attempt to reuse them in another
example. (Myron Marston) - Remove support for
and_return { value }
andand_return
without arguments. (Yuji Nakayama)
Enhancements:
- Add
receive_message_chain
which provides the functionality of the old
stub_chain
for the new allow/expect syntax. Use it like so:allow(...).to receive_message_chain(:foo, :bar, :bazz)
. (Sam Phippen). - Change argument matchers to use
===
as their primary matching
protocol, since their semantics mirror that of a case or rescue statement
(which uses===
for matching). (Myron Marston) - Add
RSpec::Mocks.with_temporary_scope
, which allows you to create
temporary rspec-mocks scopes in arbitrary places (such as a
before(:all)
hook). (Myron Marston) - Support keyword arguments when checking arity with verifying doubles.
(Xavier Shay)
Bug Fixes:
- Fix regression in 3.0.0.beta1 that caused
double("string_name" => :value)
to stop working. (Xavier Shay) - Fix the way rspec-mocks and rspec-core interact so that if users
define alet
with the same name as one of the methods
fromRSpec::Mocks::ArgumentMatchers
, the user'slet
takes
precedence. (Michi Huber, Myron Marston) - Fix verified doubles so that their methods match the visibility
(public, protected or private) of the interface they verify
against. (Myron Marston) - Fix verified null object doubles so that they do not wrongly
report that they respond to anything. They only respond to methods
available on the interface they verify against. (Myron Marston) - Fix deprecation warning for use of old
:should
syntax w/o explicit
config so that it no longer is silenced by an extension gem such
as rspec-rails when it callsconfig.add_stub_and_should_receive_to
.
(Sam Phippen) - Fix
expect
syntax so that it does not wrongly emit a "You're
overriding a previous implementation for this stub" warning when
you are not actually doing that. (Myron Marston) - Fix
any_instance.unstub
when used on sub classes for whom the super
class has hadany_instance.stub
invoked on. (Jon Rowe) - Fix regression in
stub_chain
/receive_message_chain
that caused
it to raise anArgumentError
when passing args to the stubbed
methods. (Sam Phippen) - Correct stub of undefined parent modules all the way down when stubbing a
nested constant. (Xavier Shay) - Raise
VerifyingDoubleNotDefinedError
when a constant is not defined for
a verifying class double. (Maurício Linhares) - Remove
Double#to_str
, which caused confusingraise some_double
behavior. (Maurício Linhares)
2.99.0.beta2
2.99.0.beta2 / 2014-02-17
Deprecations:
- Deprecate
RSpec::Mocks::Mock
in favor ofRSpec::Mocks::Double
.
(Myron Marston) - Deprecate the
host
argument ofRSpec::Mocks.setup
. Instead
RSpec::Mocks::ExampleMethods
should be included directly in the scope where
RSpec's mocking capabilities are used. (Sam Phippen) - Deprecate using any of rspec-mocks' features outside the per-test
lifecycle (e.g. from abefore(:all)
hook). (Myron Marston) - Deprecate re-using a test double in another example. (Myron Marston)
- Deprecate
and_return { value }
andand_return
without arguments. (Yuji Nakayama)
2.14.5
2.14.5 / 2014-02-01
Bug Fixes:
- Fix regression that caused block implementations to not receive all
args on 1.8.7 if the block also receives a block, due to Proc#arity
reporting1
no matter how many args the block receives if it
receives a block, too. (Myron Marston)
3.0.0.beta1
3.0.0.beta1 / 2013-11-07
Breaking Changes for 3.0.0:
- Raise an explicit error if
should_not_receive(...).and_return
is used. (Sam
Phippen) - Remove 1.8.6 workarounds. (Jon Rowe)
- Remove
stub!
andunstub!
. (Sam Phippen) - Remove
mock(name, methods)
andstub(name, methods)
, leaving
double(name, methods)
for creating test doubles. (Sam Phippen, Michi Huber) - Remove
any_number_of_times
sinceshould_receive(:msg).any_number_of_times
is really a stub in a mock's clothing. (Sam Phippen) - Remove support for re-using the same null-object test double in multiple
examples. Test doubles are designed to only live for one example.
(Myron Marston) - Make
at_least(0)
raise an error. (Sam Phippen) - Remove support for
require 'spec/mocks'
which had been kept
in place for backwards compatibility with RSpec 1. (Myron Marston) - Blocks provided to
with
are always used as implementation. (Xavier Shay) - The config option (added in 2.99) to yield the receiver to
any_instance
implementation blocks now defaults to "on". (Sam Phippen)
Enhancements:
- Allow the
have_received
matcher to use a block to set further expectations
on arguments. (Tim Cowlishaw) - Provide
instance_double
andclass_double
to create verifying doubles,
ported fromrspec-fire
. (Xavier Shay) as_null_object
on a verifying double only responds to defined methods.
(Xavier Shay)- Provide
object_double
to create verified doubles of specific object
instances. (Xavier Shay) - Provide 'verify_partial_doubles
configuration that provides
object_double`
like verification behaviour on partial mocks. (Xavier Shay) - Improved performance of double creation, particularly those with many
attributes. (Xavier Shay) - Default value of
transfer_nested_constants
option for constant stubbing can
be configured. (Xavier Shay) - Messages can be allowed or expected on in bulk via
receive_messages(:message => :value)
. (Jon Rowe) allow(Klass.any_instance)
andexpect(Klass.any_instance)
now print a
warning. This is usually a mistake, and users usually want
allow_any_instance_of
orexpect_any_instance_of
instead. (Sam Phippen)instance_double
andclass_double
raiseArgumentError
if the underlying
module is loaded and the arity of the method being invoked does not match the
arity of the method as it is actually implemented. (Andy Lindeman)- Spies can now check their invocation ordering is correct. (Jon Rowe)
Deprecations:
- Using the old
:should
syntax without explicitly configuring it
is disabled. It will continue to work but will emit a deprecation
warning in RSpec 3 if you do not explicitly enable it. (Sam Phippen)
Bug Fixes:
- Fix
and_call_original
to handle a complex edge case involving
singleton class ancestors. (Marc-André Lafortune, Myron Marston) - When generating an error message for unexpected arguments,
use#inspect
rather than#description
if#description
returnsnil
or''
so that you still get a useful message.
(Nick DeLuca)
2.99.0.beta1
2.99.0.beta1 / 2013-11-07
Deprecations
- Expecting to use lambdas or other strong arity implementations for stub
methods with mis-matched arity is deprecated and support for them will be
removed in 3.0. Either provide the right amount of arguments or use a weak
arity implementation (methods with splats or procs). (Jon Rowe) - Using the same test double instance in multiple examples is deprecated. Test
doubles are only meant to live for one example. The mocks and stubs have
always been reset between examples; however, in 2.x theas_null_object
state was not reset and some users relied on this to have a null object
double that is used for many examples. This behavior will be removed in 3.0.
(Myron Marston) - Print a detailed warning when an
any_instance
implementation block is used
when the newyield_receiver_to_any_instance_implementation_blocks
config
option is not explicitly set, as RSpec 3.0 will default to enabling this new
feature. (Sam Phippen)
Enhancements:
- Add a config option to yield the receiver to
any_instance
implementation
blocks. (Sam Phippen)
2.14.4
2.14.4 / 2013-10-15
Bug Fixes:
- Fix issue where unstubing methods on "any instances" would not
remove stubs on existing instances (Jon Rowe) - Fix issue with receive(:message) do ... end precedence preventing
the usage of modifications (and_return
etc) (Jon Rowe)
2.14.3
2.14.3 / 2013-08-08
Bug Fixes:
- Fix stubbing some instance methods for classes whose hierarchy includes
a prepended Module (Bradley Schaefer)
2.14.2
2.14.2 / 2013-07-30
Bug Fixes:
- Fix
as_null_object
doubles so that they returnnil
fromto_ary
(Jon Rowe). - Fix regression in 2.14 that made
stub!
(with an implicit receiver)
return a test double rather than stub a method (Myron Marston).
v2.14.1
2.14.1 / 2013-07-07
Bug Fixes:
- Restore
double.as_null_object
behavior from 2.13 and earlier: a
double's nullness persisted between examples in earlier examples.
While this is not an intended use case (test doubles are meant to live
for only one example), we don't want to break behavior users rely
on in a minor relase. This will be deprecated in 2.99 and removed
in 3.0. (Myron Marston)