Codeception\Stub
public static make($class, $params = null, $testCase = null)
Создаёт экземпляр класса без выполнения конструктора. Свойства и методы можно задать во втором параметре. Можно задавать даже защищённые и приватные свойства.
<?php
Stub::make('User');
Stub::make('User', ['name' => 'davert']);
?> Принимает либо имя класса, либо объект этого класса
<?php Stub::make(new User, ['name' => 'davert']); ?>
Для замены метода укажите его имя в качестве ключа во втором параметре и его возвращаемое значение или функцию обратного вызова в качестве параметра
<?php
Stub::make('User', ['save' => function () { return true; }]);
Stub::make('User', ['save' => true]);
?> Для создания мока, передайте имя текущего тестового случая в качестве последнего аргумента:
<?php
Stub::make('User', [
'save' => \Codeception\Stub\Expected::once()
], $this); - шаблон RealInstanceType объекта
-
param class-string<RealInstanceType>|RealInstanceType|callable(): class-string<RealInstanceType>$class - класс, который нужно смокировать -
param array$params - свойства и методы для задания -
param bool|\PHPUnit\Framework\TestCase$testCase - возвращает \PHPUnit\Framework\MockObject\MockObject&RealInstanceType - мок
- выбрасывает \RuntimeException, если класс не существует
- выбрасывает \Exception
public static factory($class, $num = null, $params = null)
Создаёт $num экземпляров класса с помощью Stub::make.
-
param mixed$class -
param int$num -
param array$params - возвращает массив
- выбрасывает \Exception
public static makeEmptyExcept($class, $method, $params = null, $testCase = null)
Создаёт экземпляр класса, в котором все методы заменены на фиктивные, кроме одного. Конструктор не вызывается. Свойства и методы можно заменить. Даже защищённые и приватные свойства можно задать.
<?php
Stub::makeEmptyExcept('User', 'save');
Stub::makeEmptyExcept('User', 'save', ['name' => 'davert']);
?> Принимает либо имя класса, либо объект этого класса
<?php * Stub::makeEmptyExcept(new User, 'save'); ?>
Для замены метода укажите его имя в качестве ключа во втором параметре и его возвращаемое значение или функцию обратного вызова в качестве параметра
<?php
Stub::makeEmptyExcept('User', 'save', ['isValid' => function () { return true; }]);
Stub::makeEmptyExcept('User', 'save', ['isValid' => true]);
?> Для создания мока, передайте имя текущего тестового случая в качестве последнего аргумента:
<?php
Stub::makeEmptyExcept('User', 'validate', [
'save' => \Codeception\Stub\Expected::once()
], $this); - шаблон
-
param class-string<RealInstanceType>|RealInstanceType|callable(): class-string<RealInstanceType>$class - класс, который нужно смокировать -
param string$method -
param array$params -
param bool|\PHPUnit\Framework\TestCase$testCase - возвращает \PHPUnit\Framework\MockObject\MockObject&RealInstanceType
- выбрасывает \Exception
public static makeEmpty($class, $params = null, $testCase = null)
Создаёт экземпляр класса, в котором все методы заменены на фиктивные. Конструктор не вызывается. Свойства и методы можно задать во втором параметре. Даже защищённые и приватные свойства можно задать.
<?php
Stub::makeEmpty('User');
Stub::makeEmpty('User', ['name' => 'davert']); Принимает либо имя класса, либо объект этого класса
<?php Stub::makeEmpty(new User, ['name' => 'davert']);
Для замены метода укажите его имя в качестве ключа во втором параметре и его возвращаемое значение или функцию обратного вызова в качестве параметра
<?php
Stub::makeEmpty('User', ['save' => function () { return true; }]);
Stub::makeEmpty('User', ['save' => true]); Для создания мока, передайте имя текущего тестового случая в качестве последнего аргумента:
<?php
Stub::makeEmpty('User', [
'save' => \Codeception\Stub\Expected::once()
], $this); - шаблон RealInstanceType объекта
-
param class-string<RealInstanceType>|RealInstanceType|callable(): class-string<RealInstanceType>$class - класс, который нужно смокировать -
param array$params -
param bool|\PHPUnit\Framework\TestCase$testCase - возвращает \PHPUnit\Framework\MockObject\MockObject&RealInstanceType
- выбрасывает \Exception
public static copy($obj, $params = null)
Создаёт копию объекта и переопределяет его свойства (даже защищённые и приватные)
-
param$obj -
param array$params - возвращает смешанный тип
- выбрасывает \Exception
public static construct($class, $constructorParams = null, $params = null, $testCase = null)
Создаёт экземпляр класса, вызвав конструктор. Параметры конструктора передаются во втором аргументе. Свойства и методы можно задать в третьем аргументе. Даже защищённые и приватные свойства можно задать.
<?php
Stub::construct('User', ['autosave' => false]);
Stub::construct('User', ['autosave' => false], ['name' => 'davert']);
?> Принимает либо имя класса, либо объект этого класса
<?php Stub::construct(new User, ['autosave' => false], ['name' => 'davert']); ?>
Для замены метода укажите его имя в качестве ключа в третьем параметре и его возвращаемое значение или функцию обратного вызова в качестве параметра
<?php
Stub::construct('User', [], ['save' => function () { return true; }]);
Stub::construct('User', [], ['save' => true]);
?> Для создания мока, передайте имя текущего тестового случая в качестве последнего аргумента:
<?php
Stub::construct('User', [], [
'save' => \Codeception\Stub\Expected::once()
], $this); - шаблон RealInstanceType объекта
-
param class-string<RealInstanceType>|RealInstanceType|callable(): class-string<RealInstanceType>$class - класс, который нужно смокировать -
param array$constructorParams -
param array$params -
param bool|\PHPUnit\Framework\TestCase$testCase - возвращает \PHPUnit\Framework\MockObject\MockObject&RealInstanceType
- выбрасывает \Exception
public static constructEmpty($class, $constructorParams = null, $params = null, $testCase = null)
Создаёт экземпляр класса, вызвав конструктор, с всеми методами, заменёнными на фиктивные. Параметры конструктора передаются во втором аргументе. Свойства и методы можно задать в третьем аргументе. Даже защищённые и приватные свойства можно задать.
<?php
Stub::constructEmpty('User', ['autosave' => false]);
Stub::constructEmpty('User', ['autosave' => false], ['name' => 'davert']); Принимает либо имя класса, либо объект этого класса
<?php Stub::constructEmpty(new User, ['autosave' => false], ['name' => 'davert']);
Для замены метода укажите его имя в качестве ключа в третьем параметре и его возвращаемое значение или функцию обратного вызова в качестве параметра
<?php
Stub::constructEmpty('User', [], ['save' => function () { return true; }]);
Stub::constructEmpty('User', [], ['save' => true]); Для создания мока, передайте имя текущего тестового случая в качестве последнего аргумента:
<?php
Stub::constructEmpty('User', [], [
'save' => \Codeception\Stub\Expected::once()
], $this); - шаблон RealInstanceType объекта
-
param class-string<RealInstanceType>|RealInstanceType|callable(): class-string<RealInstanceType>$class - класс, который нужно смокировать -
param array$constructorParams -
param array$params -
param bool|\PHPUnit\Framework\TestCase$testCase - возвращает \PHPUnit\Framework\MockObject\MockObject&RealInstanceType
public static constructEmptyExcept($class, $method, $constructorParams = null, $params = null, $testCase = null)
Создаёт экземпляр класса, вызвав конструктор, с всеми методами, заменёнными на фиктивные, кроме одного. Параметры конструктора передаются во втором аргументе. Свойства и методы можно задать в третьем аргументе. Даже защищённые и приватные свойства можно задать.
<?php
Stub::constructEmptyExcept('User', 'save');
Stub::constructEmptyExcept('User', 'save', ['autosave' => false], ['name' => 'davert']);
?> Принимает либо имя класса, либо объект этого класса
<?php Stub::constructEmptyExcept(new User, 'save', ['autosave' => false], ['name' => 'davert']); ?>
Для замены метода укажите его имя в качестве ключа в третьем параметре и его возвращаемое значение или функцию обратного вызова в качестве параметра
<?php
Stub::constructEmptyExcept('User', 'save', [], ['save' => function () { return true; }]);
Stub::constructEmptyExcept('User', 'save', [], ['save' => true]);
?> Для создания мока, передайте имя текущего тестового случая в качестве последнего аргумента:
<?php
Stub::constructEmptyExcept('User', 'save', [], [
'save' => \Codeception\Stub\Expected::once()
], $this); - шаблон RealInstanceType объекта
-
param class-string<RealInstanceType>|RealInstanceType|callable(): class-string<RealInstanceType>$class - класс, который нужно смокировать -
param string$method -
param array$constructorParams -
param array$params -
param bool|\PHPUnit\Framework\TestCase$testCase - возвращает \PHPUnit\Framework\MockObject\MockObject&RealInstanceType
public static update($mock, array $params)
Заменяет свойства текущего стаба
-
param \PHPUnit\Framework\MockObject\MockObject$mock -
param array$params - возвращает смешанный тип
- выбрасывает \LogicException
public static consecutive()
Метод, который заставляет вызываемый метод возвращать список значений в указанном порядке.
<?php
$user = Stub::make('User', ['getName' => Stub::consecutive('david', 'emma', 'sam', 'amy')]);
$user->getName(); //david
$user->getName(); //emma
$user->getName(); //sam
$user->getName(); //amy
?> - возвращает ConsecutiveMap
© 2011 Michael Bodnarchuk and contributors
Licensed under the MIT License.
https://codeception.com/docs/reference/Stub