- Updated changelog for version 1.5.1 to include changes from #1180
- PHP 8.2 | Fix "Use of "parent" in callables is deprecated" notice #1169
- [PHP 8.2] Various tests: explicitly declare properties #1170
- [PHP 8.2] Fix "Use of "parent" in callables is deprecated" notice #1169
- [PHP 8.1] Support intersection types #1164
- Handle final
__toString
methods #1162 - Only count assertions on expectations which can fail a test #1180
- Override default call count expectations via expects() #1146
- Mock methods with static return types #1157
- Mock methods with mixed return type #1156
- Mock classes with new in initializers on PHP 8.1 #1160
- Removes redundant PHPUnitConstraint #1158
- Fixes auto-generated return values #1144
- Adds support for tentative types #1130
- Fixes for PHP 8.1 Support (#1130 and #1140)
- Add method that allows defining a set of arguments the mock should yield #1133
- Added option to configure default matchers for objects
\Mockery::getConfiguration()->setDefaultMatcher($class, $matcherClass)
#1120
- Fix auto-generated return values with union types #1143
- Adds support for tentative types #1130
- Fixes for PHP 8.1 Support (#1130 and #1140)
- Add method that allows defining a set of arguments the mock should yield #1133
- Added option to configure default matchers for objects
\Mockery::getConfiguration()->setDefaultMatcher($class, $matcherClass)
#1120
- Fixes calls to fetchMock before initialisation #1113
- Allow shouldIgnoreMissing() to behave in a recursive fashion #1097
- Custom object formatters #766 (Needs Docs)
- Fix crash on a union type including null #1106
- Fixes calls to fetchMock before initialisation #1113
- Fix crash on a union type including null #1106
- Fix array to string conversion in ConstantsPass (#1086)
- Fixed nullable PHP 8.0 union types (#1088, #1089)
- Fixed support for PHP 8.0 parent type (#1088, #1089)
- Fixed PHP 8.0 mixed type support (#1088, #1089)
- Fixed PHP 8.0 union return types (#1088, #1089)
- Allow quick definitions to use 'at least once' expectation
\Mockery::getConfiguration()->getQuickDefinitions()->shouldBeCalledAtLeastOnce(true)
(#1056) - Added provisional support for PHP 8.0 (#1068, #1072,#1079)
- Fix mocking methods with iterable return type without specifying a return value (#1075)
- Fix array to string conversion in ConstantsPass (#1086)
- Fixed nullable PHP 8.0 union types (#1088)
- Fixed support for PHP 8.0 parent type (#1088)
- Fixed PHP 8.0 mixed type support (#1088)
- Fixed PHP 8.0 union return types (#1088)
- Fix mocking with anonymous classes (#1039)
- Fix andAnyOthers() to properly match earlier expectations (#1051)
- Added provisional support for PHP 8.0 (#1068, #1072,#1079)
- Fix mocking methods with iterable return type without specifying a return value (#1075)
- Fix mocking with anonymous classes (#1039)
- Fix andAnyOthers() to properly match earlier expectations (#1051)
- Drops support for PHP < 7.3 and PHPUnit < 8 (#1059)
- Revert improved exception debugging due to BC breaks (#1032)
- Added capture
Mockery::capture
convenience matcher (#1020) - Added
andReturnArg
to echo back an argument passed to a an expectation (#992) - Improved exception debugging (#1000)
- Fixed
andSet
to not reuse properties between mock objects (#1012)
- Fix a bug introduced with previous release, for empty method definition lists (#1009)
- Allow mocking classes that have allows and expects methods (#868)
- Allow passing thru __call method in all mock types (experimental) (#969)
- Add support for
!
to blacklist methods (#959) - Added
withSomeOfArgs
to partial match a list of args (#967) - Fix chained demeter calls with type hint (#956)
- Fix a BC breaking change for PHP 5.6/PHPUnit 5.7.27 (#947)
- Support for PHPUnit 8 (#942)
- Allow mocking static methods called on instance (#938)
- Starts counting default expectations towards count (#910)
- Adds workaround for some HHVM return types (#909)
- Adds PhpStorm metadata support for autocomplete etc (#904)
- Further attempts to support multiple PHPUnit versions (#903)
- Allows setting constructor expectations on instance mocks (#900)
- Adds workaround for HHVM memoization decorator (#893)
- Adds experimental support for callable spys (#712)
- Allows use of string method names in allows and expects (#794)
- Finalises allows and expects syntax in API (#799)
- Search for handlers in a case instensitive way (#801)
- Deprecate allowMockingMethodsUnnecessarily (#808)
- Fix risky tests (#769)
- Fix namespace in TestListener (#812)
- Fixed conflicting mock names (#813)
- Clean elses (#819)
- Updated protected method mocking exception message (#826)
- Map of constants to mock (#829)
- Simplify foreach with
in_array
function (#830) - Typehinted return value on Expectation#verify. (#832)
- Fix shouldNotHaveReceived with HigherOrderMessage (#842)
- Deprecates shouldDeferMissing (#839)
- Adds support for return type hints in Demeter chains (#848)
- Adds shouldNotReceive to composite expectation (#847)
- Fix internal error when using --static-backup (#845)
- Adds
andAnyOtherArgs
as an optional argument matcher (#860) - Fixes namespace qualifying with namespaced named mocks (#872)
- Added possibility to add Constructor-Expections on hard dependencies, read: Mockery::mock('overload:...') (#781)
- Destructors (
__destruct
) are stubbed out where it makes sense - Allow passing a closure argument to
withArgs()
to validate multiple arguments at once. Mockery\Adapter\Phpunit\TestListener
has been rewritten because it incorrectly marked some tests as risky. It will no longer verify mock expectations but instead check that tests do that themselves. PHPUnit 6 is required if you want to use this fail safe.- Removes SPL Class Loader
- Removed object recorder feature
- Bumped minimum PHP version to 5.6
andThrow
will now throw anything\Throwable
- Adds
allows
andexpects
syntax - Adds optional global helpers for
mock
,namedMock
andspy
- Adds ability to create objects using traits
Mockery\Matcher\MustBe
was deprecated- Marked
Mockery\MockInterface
as internal - Subset matcher matches recursively
- BC BREAK - Spies return
null
by default from ignored (non-mocked) methods with nullable return type - Removed extracting getter methods of object instances
- BC BREAK - Remove implicit regex matching when trying to match string arguments, introduce
\Mockery::pattern()
when regex matching is needed - Fix Mockery not getting closed in cases of failing test cases
- Fix Mockery not setting properties on overloaded instance mocks
- BC BREAK - Fix Mockery not trying default expectations if there is any concrete expectation
- BC BREAK - Mockery's PHPUnit integration will mark a test as risky if it
thinks one it's exceptions has been swallowed in PHPUnit > 5.7.6. Use
$e->dismiss()
to dismiss.
shouldIgnoreMissing
will respect globalallowMockingNonExistentMethods
config- Some support for variadic parameters
- Hamcrest is now a required dependency
- Instance mocks now respect
shouldIgnoreMissing
call on control instance - This will be the last version to support PHP 5.3
- Added
Mockery\Adapter\Phpunit\MockeryPHPUnitIntegration
trait - Added
makePartial
toMockery\MockInterface
as it was missing
- Added a basic spy implementation
- Added
Mockery\Adapter\Phpunit\MockeryTestCase
for more reliable PHPUnit integration
- Some workarounds for the serialisation problems created by changes to PHP in 5.5.13, 5.4.29, 5.6.
- Demeter chains attempt to reuse doubles as they see fit, so for foo->bar and foo->baz, we'll attempt to use the same foo
- Allow specifying consecutive exceptions to be thrown with
andThrowExceptions
- Allow specifying methods which can be mocked when using
Mockery\Configuration::allowMockingNonExistentMethods(false)
withMockery\MockInterface::shouldAllowMockingMethod($methodName)
- Added andReturnSelf method:
$mock->shouldReceive("foo")->andReturnSelf()
shouldIgnoreMissing
now takes an optional value that will be return instead of null, e.g.$mock->shouldIgnoreMissing($mock)
- Allow mocking classes with final __wakeup() method
- Quick definitions are now always
byDefault
- Allow mocking of protected methods with
shouldAllowMockingProtectedMethods
- Support official Hamcrest package
- Generator completely rewritten
- Easily create named mocks with namedMock