/home/techb158/dev.balacoffee.com/vendor/mockery/mockery/docs/reference
NameSizeModeActions
alternative_should_receive_syntax.rst23810644editdlrm
argument_validation.rst107450644editdlrm
creating_test_doubles.rst144620644editdlrm
demeter_chains.rst16390644editdlrm
expectations.rst159460644editdlrm
final_methods_classes.rst13510644editdlrm
index.rst4210644editdlrm
instance_mocking.rst8050644editdlrm
magic_methods.rst6870644editdlrm
map.rst.inc5500644editdlrm
partial_mocks.rst42860644editdlrm
pass_by_reference_behaviours.rst43220644editdlrm
phpunit_integration.rst48530644editdlrm
protected_methods.rst6680644editdlrm
public_properties.rst8210644editdlrm
public_static_properties.rst7010644editdlrm
spies.rst47360644editdlrm
Edit: /home/techb158/dev.balacoffee.com/vendor/mockery/mockery/docs/reference/demeter_chains.rst (1639B)
.. index:: single: Mocking; Demeter Chains Mocking Demeter Chains And Fluent Interfaces ============================================ Both of these terms refer to the growing practice of invoking statements similar to: .. code-block:: php $object->foo()->bar()->zebra()->alpha()->selfDestruct(); The long chain of method calls isn't necessarily a bad thing, assuming they each link back to a local object the calling class knows. As a fun example, Mockery's long chains (after the first ``shouldReceive()`` method) all call to the same instance of ``\Mockery\Expectation``. However, sometimes this is not the case and the chain is constantly crossing object boundaries. In either case, mocking such a chain can be a horrible task. To make it easier Mockery supports demeter chain mocking. Essentially, we shortcut through the chain and return a defined value from the final call. For example, let's assume ``selfDestruct()`` returns the string "Ten!" to $object (an instance of ``CaptainsConsole``). Here's how we could mock it. .. code-block:: php $mock = \Mockery::mock('CaptainsConsole'); $mock->shouldReceive('foo->bar->zebra->alpha->selfDestruct')->andReturn('Ten!'); The above expectation can follow any previously seen format or expectation, except that the method name is simply the string of all expected chain calls separated by ``->``. Mockery will automatically setup the chain of expected calls with its final return values, regardless of whatever intermediary object might be used in the real implementation. Arguments to all members of the chain (except the final call) are ignored in this process.