Server IP : 127.0.0.2 / Your IP : 18.118.217.142 Web Server : Apache/2.4.18 (Ubuntu) System : User : www-data ( ) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : disk_free_space,disk_total_space,diskfreespace,dl,exec,fpaththru,getmyuid,getmypid,highlight_file,ignore_user_abord,leak,listen,link,opcache_get_configuration,opcache_get_status,passthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,php_uname,phpinfo,posix_ctermid,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix,_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_times,posix_ttyname,posix_uname,pclose,popen,proc_open,proc_close,proc_get_status,proc_nice,proc_terminate,shell_exec,source,show_source,system,virtual MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/html/vendor/mockery/mockery/docs/reference/ |
Upload File : |
.. index:: single: Expectations Expectation Declarations ======================== Once you have created a mock object, you'll often want to start defining how exactly it should behave (and how it should be called). This is where the Mockery expectation declarations take over. .. code-block:: php shouldReceive(method_name) Declares that the mock expects a call to the given method name. This is the starting expectation upon which all other expectations and constraints are appended. .. code-block:: php shouldReceive(method1, method2, ...) Declares a number of expected method calls, all of which will adopt any chained expectations or constraints. .. code-block:: php shouldReceive(array('method1'=>1, 'method2'=>2, ...)) Declares a number of expected calls but also their return values. All will adopt any additional chained expectations or constraints. .. code-block:: php shouldReceive(closure) Creates a mock object (only from a partial mock) which is used to create a mock object recorder. The recorder is a simple proxy to the original object passed in for mocking. This is passed to the closure, which may run it through a set of operations which are recorded as expectations on the partial mock. A simple use case is automatically recording expectations based on an existing usage (e.g. during refactoring). See examples in a later section. .. code-block:: php shouldNotReceive(method_name) Declares that the mock should not expect a call to the given method name. This method is a convenience method for calling ``shouldReceive()->never()``. .. code-block:: php with(arg1, arg2, ...) / withArgs(array(arg1, arg2, ...)) Adds a constraint that this expectation only applies to method calls which match the expected argument list. You can add a lot more flexibility to argument matching using the built in matcher classes (see later). For example, ``\Mockery::any()`` matches any argument passed to that position in the ``with()`` parameter list. Mockery also allows Hamcrest library matchers - for example, the Hamcrest function ``anything()`` is equivalent to ``\Mockery::any()``. It's important to note that this means all expectations attached only apply to the given method when it is called with these exact arguments. This allows for setting up differing expectations based on the arguments provided to expected calls. .. code-block:: php withAnyArgs() Declares that this expectation matches a method call regardless of what arguments are passed. This is set by default unless otherwise specified. .. code-block:: php withNoArgs() Declares this expectation matches method calls with zero arguments. .. code-block:: php andReturn(value) Sets a value to be returned from the expected method call. .. code-block:: php andReturn(value1, value2, ...) Sets up a sequence of return values or closures. For example, the first call will return value1 and the second value2. Note that all subsequent calls to a mocked method will always return the final value (or the only value) given to this declaration. .. code-block:: php andReturnNull() / andReturn([NULL]) Both of the above options are primarily for communication to test readers. They mark the mock object method call as returning ``null`` or nothing. .. code-block:: php andReturnValues(array) Alternative syntax for ``andReturn()`` that accepts a simple array instead of a list of parameters. The order of return is determined by the numerical index of the given array with the last array member being return on all calls once previous return values are exhausted. .. code-block:: php andReturnUsing(closure, ...) Sets a closure (anonymous function) to be called with the arguments passed to the method. The return value from the closure is then returned. Useful for some dynamic processing of arguments into related concrete results. Closures can queued by passing them as extra parameters as for ``andReturn()``. .. note:: You cannot currently mix ``andReturnUsing()`` with ``andReturn()``. .. code-block:: php andThrow(Exception) Declares that this method will throw the given ``Exception`` object when called. .. code-block:: php andThrow(exception_name, message) Rather than an object, you can pass in the ``Exception`` class and message to use when throwing an ``Exception`` from the mocked method. .. code-block:: php andSet(name, value1) / set(name, value1) Used with an expectation so that when a matching method is called, one can also cause a mock object's public property to be set to a specified value. .. code-block:: php passthru() Tells the expectation to bypass a return queue and instead call the real method of the class that was mocked and return the result. Basically, it allows expectation matching and call count validation to be applied against real methods while still calling the real class method with the expected arguments. .. code-block:: php zeroOrMoreTimes() Declares that the expected method may be called zero or more times. This is the default for all methods unless otherwise set. .. code-block:: php once() Declares that the expected method may only be called once. Like all other call count constraints, it will throw a ``\Mockery\CountValidator\Exception`` if breached and can be modified by the ``atLeast()`` and ``atMost()`` constraints. .. code-block:: php twice() Declares that the expected method may only be called twice. .. code-block:: php times(n) Declares that the expected method may only be called n times. .. code-block:: php never() Declares that the expected method may never be called. Ever! .. code-block:: php atLeast() Adds a minimum modifier to the next call count expectation. Thus ``atLeast()->times(3)`` means the call must be called at least three times (given matching method args) but never less than three times. .. code-block:: php atMost() Adds a maximum modifier to the next call count expectation. Thus ``atMost()->times(3)`` means the call must be called no more than three times. This also means no calls are acceptable. .. code-block:: php between(min, max) Sets an expected range of call counts. This is actually identical to using ``atLeast()->times(min)->atMost()->times(max)`` but is provided as a shorthand. It may be followed by a ``times()`` call with no parameter to preserve the APIs natural language readability. .. code-block:: php ordered() Declares that this method is expected to be called in a specific order in relation to similarly marked methods. The order is dictated by the order in which this modifier is actually used when setting up mocks. .. code-block:: php ordered(group) Declares the method as belonging to an order group (which can be named or numbered). Methods within a group can be called in any order, but the ordered calls from outside the group are ordered in relation to the group, i.e. you can set up so that method1 is called before group1 which is in turn called before method 2. .. code-block:: php globally() When called prior to ``ordered()`` or ``ordered(group)``, it declares this ordering to apply across all mock objects (not just the current mock). This allows for dictating order expectations across multiple mocks. .. code-block:: php byDefault() Marks an expectation as a default. Default expectations are applied unless a non-default expectation is created. These later expectations immediately replace the previously defined default. This is useful so you can setup default mocks in your unit test ``setup()`` and later tweak them in specific tests as needed. .. code-block:: php getMock() Returns the current mock object from an expectation chain. Useful where you prefer to keep mock setups as a single statement, e.g. .. code-block:: php $mock = \Mockery::mock('foo')->shouldReceive('foo')->andReturn(1)->getMock();