/home/techb158/ileadtechnology.com/vendor/mockery/mockery/docs/reference
NameSizeModeActions
alternative_should_receive_syntax.rst23810644editdlrm
argument_validation.rst107430644editdlrm
creating_test_doubles.rst144610644editdlrm
demeter_chains.rst16390644editdlrm
expectations.rst151260644editdlrm
final_methods_classes.rst13190644editdlrm
index.rst4000644editdlrm
instance_mocking.rst8050644editdlrm
magic_methods.rst6870644editdlrm
map.rst.inc5500644editdlrm
partial_mocks.rst42860644editdlrm
pass_by_reference_behaviours.rst43220644editdlrm
phpunit_integration.rst50050644editdlrm
protected_methods.rst6680644editdlrm
public_properties.rst8210644editdlrm
public_static_properties.rst7010644editdlrm
spies.rst47370644editdlrm
Edit: /home/techb158/ileadtechnology.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.