Upgrading¶
Upgrading to 1.0.0¶
Minimum PHP version¶
As of Mockery 1.0.0 the minimum PHP version required is 5.6.
Using Mockery with PHPUnit¶
In the “old days”, 0.9.x and older, the way Mockery was integrated with PHPUnit was
through a PHPUnit listener. That listener would in turn call the \Mockery::close()
method for us.
As of 1.0.0, PHPUnit test cases where we want to use Mockery, should either use the
\Mockery\Adapter\Phpunit\MockeryPHPUnitIntegration trait, or extend the
\Mockery\Adapter\Phpunit\MockeryTestCase test case. This will in turn call the
\Mockery::close() method for us.
Read the documentation for a detailed overview of “PHPUnit Integration”.
\Mockery\Matcher\MustBe is deprecated¶
As of 1.0.0 the \Mockery\Matcher\MustBe matcher is deprecated and will be removed in
Mockery 2.0.0. We recommend instead to use the PHPUnit equivalents of the
MustBe matcher.
allows and expects¶
As of 1.0.0, Mockery has two new methods to set up expectations: allows and expects.
This means that these methods names are now “reserved” for Mockery, or in other words
classes you want to mock with Mockery, can’t have methods called allows or expects.
Read more in the documentation about this “Alternative shouldReceive Syntax”.
No more implicit regex matching for string arguments¶
When setting up string arguments in method expectations, Mockery 0.9.x and older, would try to match arguments using a regular expression in a “last attempt” scenario.
As of 1.0.0, Mockery will no longer attempt to do this regex matching, but will only try
first the identical operator ===, and failing that, the equals operator ==.
If you want to match an argument using regular expressions, please use the new
\Mockery\Matcher\Pattern matcher. Read more in the documentation about this
pattern matcher in the “Argument Validation” section.
andThrow \Throwable¶
As of 1.0.0, the andThrow can now throw any \Throwable.
Upgrading to 0.9¶
The generator was completely rewritten, so any code with a deep integration to mockery will need evaluating.
Upgrading to 0.8¶
Since the release of 0.8.0 the following behaviours were altered:
The
shouldIgnoreMissing()behaviour optionally applied to mock objects returned an instance of\Mockery\Undefinedwhen methods called did not match a known expectation. Since 0.8.0, this behaviour was switched to returningnullinstead. You can restore the 0.7.2 behaviour by using the following:$mock = \Mockery::mock('stdClass')->shouldIgnoreMissing()->asUndefined();