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
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 or Hamcrest equivalents of the
As of 1.0.0, Mockery has two new methods to set up expectations:
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
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.
As of 1.0.0, the
andThrow can now throw any
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:
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 returning
nullinstead. You can restore the 0.7.2 behaviour by using the following:
$mock = \Mockery::mock('stdClass')->shouldIgnoreMissing()->asUndefined();