HumHub Documentation (unofficial)

Stub

### Usage in Codeception

Since Codeception 2.3.8 this trait is enabled in \Codeception\Test\Unit class.

Usage in PHPUnit

Include this trait into a TestCase to be able to use Stubs and Mocks:

<?php
class MyTest extends \PHPUnit\Framework\TestCase
{
     use Codeception\Test\Feature\Stub;
}

Table of Contents

Properties

$mocks  : mixed

Methods

construct()  : MockObject|RealInstanceType
Instantiates a class instance by running constructor.
constructEmpty()  : MockObject|RealInstanceType
Instantiates a class instance by running constructor with all methods replaced with dummies.
constructEmptyExcept()  : MockObject|RealInstanceType
Instantiates a class instance by running constructor with all methods replaced with dummies, except one.
make()  : MockObject|RealInstanceType
Instantiates a class without executing a constructor.
makeEmpty()  : MockObject|RealInstanceType
Instantiates class having all methods replaced with dummies.
makeEmptyExcept()  : MockObject|RealInstanceType
Instantiates class having all methods replaced with dummies except one.
stubEnd()  : mixed
stubStart()  : mixed

Properties

$mocks

private mixed $mocks

Methods

construct()

Instantiates a class instance by running constructor.

public construct(RealInstanceType>|RealInstanceType|callable(): RealInstanceType> $class[, array<string|int, mixed> $constructorParams = [] ][, array<string|int, mixed> $params = [] ]) : MockObject|RealInstanceType

Parameters for constructor passed as second argument Properties and methods can be set in third argument. Even protected and private properties can be set.

<?php
$this->construct('User', ['autosave' => false]);
$this->construct('User', ['autosave' => false], ['name' => 'davert']);
?>

Accepts either name of class or object of that class

<?php
$this->construct(new User, ['autosave' => false), ['name' => 'davert']);
?>

To replace method provide it's name as a key in third parameter and it's return value or callback function as parameter

<?php
$this->construct('User', [], ['save' => function () { return true; }]);
$this->construct('User', [], ['save' => true]);
?>
Parameters
$class : RealInstanceType>|RealInstanceType|callable(): RealInstanceType>
  • A class to be mocked
$constructorParams : array<string|int, mixed> = []
$params : array<string|int, mixed> = []
Tags
template

RealInstanceType of object

throws
Exception
Return values
MockObject|RealInstanceType

constructEmpty()

Instantiates a class instance by running constructor with all methods replaced with dummies.

public constructEmpty(RealInstanceType>|RealInstanceType|callable(): RealInstanceType> $class[, array<string|int, mixed> $constructorParams = [] ][, array<string|int, mixed> $params = [] ]) : MockObject|RealInstanceType

Parameters for constructor passed as second argument Properties and methods can be set in third argument. Even protected and private properties can be set.

<?php
$this->constructEmpty('User', ['autosave' => false]);
$this->constructEmpty('User', ['autosave' => false), ['name' => 'davert']);

Accepts either name of class or object of that class

<?php
$this->constructEmpty(new User, ['autosave' => false], ['name' => 'davert']);

To replace method provide it's name as a key in third parameter and it's return value or callback function as parameter

<?php
$this->constructEmpty('User', array(), array('save' => function () { return true; }));
$this->constructEmpty('User', array(), array('save' => true));

To create a mock, pass current testcase name as last argument:

<?php
$this->constructEmpty('User', [], [
     'save' => \Codeception\Stub\Expected::once()
]);
Parameters
$class : RealInstanceType>|RealInstanceType|callable(): RealInstanceType>
  • A class to be mocked
$constructorParams : array<string|int, mixed> = []
$params : array<string|int, mixed> = []
Tags
template

RealInstanceType of object

Return values
MockObject|RealInstanceType

constructEmptyExcept()

Instantiates a class instance by running constructor with all methods replaced with dummies, except one.

public constructEmptyExcept(RealInstanceType>|RealInstanceType|callable(): RealInstanceType> $class, string $method[, array<string|int, mixed> $constructorParams = [] ][, array<string|int, mixed> $params = [] ]) : MockObject|RealInstanceType

Parameters for constructor passed as second argument Properties and methods can be set in third argument. Even protected and private properties can be set.

<?php
$this->constructEmptyExcept('User', 'save');
$this->constructEmptyExcept('User', 'save', ['autosave' => false], ['name' => 'davert']);
?>

Accepts either name of class or object of that class

<?php
$this->constructEmptyExcept(new User, 'save', ['autosave' => false], ['name' => 'davert']);
?>

To replace method provide it's name as a key in third parameter and it's return value or callback function as parameter

<?php
$this->constructEmptyExcept('User', 'save', [], ['save' => function () { return true; }]);
$this->constructEmptyExcept('User', 'save', [], ['save' => true]);
?>
Parameters
$class : RealInstanceType>|RealInstanceType|callable(): RealInstanceType>
  • A class to be mocked
$method : string
$constructorParams : array<string|int, mixed> = []
$params : array<string|int, mixed> = []
Tags
template

RealInstanceType of object

Return values
MockObject|RealInstanceType

make()

Instantiates a class without executing a constructor.

public make(RealInstanceType>|RealInstanceType|callable(): RealInstanceType> $class[, array<string|int, mixed> $params = [] ]) : MockObject|RealInstanceType

Properties and methods can be set as a second parameter. Even protected and private properties can be set.

<?php
$this->make('User');
$this->make('User', ['name' => 'davert']);
?>

Accepts either name of class or object of that class

<?php
$this->make(new User, ['name' => 'davert']);
?>

To replace method provide it's name as a key in second parameter and it's return value or callback function as parameter

<?php
$this->make('User', ['save' => function () { return true; }]);
$this->make('User', ['save' => true]);
Parameters
$class : RealInstanceType>|RealInstanceType|callable(): RealInstanceType>
  • A class to be mocked
$params : array<string|int, mixed> = []
  • properties and methods to set
Tags
template

RealInstanceType of object

throws
RuntimeException

when class does not exist

throws
Exception
Return values
MockObject|RealInstanceType
  • mock

makeEmpty()

Instantiates class having all methods replaced with dummies.

public makeEmpty(RealInstanceType>|RealInstanceType|callable(): RealInstanceType> $class[, array<string|int, mixed> $params = [] ]) : MockObject|RealInstanceType

Constructor is not triggered. Properties and methods can be set as a second parameter. Even protected and private properties can be set.

<?php
$this->makeEmpty('User');
$this->makeEmpty('User', ['name' => 'davert']);

Accepts either name of class or object of that class

<?php
$this->makeEmpty(new User, ['name' => 'davert']);

To replace method provide it's name as a key in second parameter and it's return value or callback function as parameter

<?php
$this->makeEmpty('User', ['save' => function () { return true; }]);
$this->makeEmpty('User', ['save' => true));
Parameters
$class : RealInstanceType>|RealInstanceType|callable(): RealInstanceType>
  • A class to be mocked
$params : array<string|int, mixed> = []
Tags
template

RealInstanceType of object

throws
Exception
Return values
MockObject|RealInstanceType

makeEmptyExcept()

Instantiates class having all methods replaced with dummies except one.

public makeEmptyExcept(RealInstanceType>|RealInstanceType|callable(): RealInstanceType> $class, string $method[, array<string|int, mixed> $params = [] ]) : MockObject|RealInstanceType

Constructor is not triggered. Properties and methods can be replaced. Even protected and private properties can be set.

<?php
$this->makeEmptyExcept('User', 'save');
$this->makeEmptyExcept('User', 'save', ['name' => 'davert']);
?>

Accepts either name of class or object of that class

<?php
* $this->makeEmptyExcept(new User, 'save');
?>

To replace method provide it's name as a key in second parameter and it's return value or callback function as parameter

<?php
$this->makeEmptyExcept('User', 'save', ['isValid' => function () { return true; }]);
$this->makeEmptyExcept('User', 'save', ['isValid' => true]);
Parameters
$class : RealInstanceType>|RealInstanceType|callable(): RealInstanceType>
  • A class to be mocked
$method : string
$params : array<string|int, mixed> = []
Tags
template

RealInstanceType of object

throws
Exception
Return values
MockObject|RealInstanceType

stubEnd()

protected stubEnd(mixed $status, mixed $time) : mixed
Parameters
$status : mixed
$time : mixed

stubStart()

protected stubStart() : mixed

        
On this page

Search results