Класс IntegrationTestCase
Класс тестовых случаев, предназначенный для упрощения интеграционных тестов ваших контроллеров.
Этот тестовый класс предоставляет ряд вспомогательных методов и функций, которые упрощают отправку запросов и проверку их ответов. Он отдает предпочтение полным интеграционным тестам по сравнению с объектами-моделями, так как вы можете легче протестировать больше вашего кода и избежать некоторых проблем с обслуживанием, которые создают объекты-модели.
- PHPUnit_Framework_TestCase
-
Cake\TestSuite\TestCase -
Cake\TestSuite\IntegrationTestCase использует Cake\Utility\CookieCryptTrait, Cake\View\Helper\SecureFieldTokenTrait
Подробное описание методов
_addTokensисходный код защищённый
_addTokens( string $url , array $data )
Добавляет токены CSRF и компонента Security, если необходимо.
Параметры
- строка
$url - URL, на котором отправляется форма.
- массив
$data - Данные тела запроса.
Возвращает
arrayТело запроса с добавленными токенами.
_assertStatusисходный код защищённый
_assertStatus( integer $min , integer $max , string $message )
Вспомогательный метод для проверки кода состояния.
Параметры
- целое число
$min - Минимальный код состояния.
- целое число
$max - Максимальный код состояния.
- строка
$message - Сообщение об ошибке.
_buildRequestисходный код защищённый
_buildRequest( string|array $url , string $method , array|null $data )
Создаёт объект запроса с настроенными параметрами.
Параметры
- строка|массив
$url - URL
- строка
$method - Метод HTTP
- массив|null
$data - Данные запроса.
Возвращает
Cake\Network\RequestСозданный запрос.
_getCookieEncryptionKeyисходный код защищённый
_getCookieEncryptionKey( )
Возвращает ключ шифрования, который будет использоваться.
Возвращает
stringстрока
_handleErrorисходный код защищённый
_handleError( Exception $exception )
Попытка отобразить ответ об ошибке для данного исключения.
Этот метод попытается использовать настроенный обработчик исключений. Если такого класса нет, будет использован встроенный обработчик.
Параметры
- Исключение
$exception - Исключение для обработки.
Выбрасывает
Exception\Исключение
_sendRequestисходный код защищённый
_sendRequest( string|array $url , string $method , array|null $data [] )
Создаёт и отправляет запрос в экземпляр диспетчера.
Принимает и сохраняет ответ для дальнейшего анализа.
Параметры
- строка|массив
$url - URL
- строка
$method - Метод HTTP
- массив|null
$dataдополнительно [] - Данные запроса.
Выбрасывает
Exception\Исключение
_urlисходный код защищённый
_url( string|array $url )
Создаёт корректный URL запроса и массив параметров, более похожий на Request::_url()
Параметры
- строка|массив
$url - URL
Возвращает
arrayПолный URL и параметры запроса
assertContentTypeисходный код публичный
assertContentType( string $type , string $message '' )
Проверяет тип контента
Параметры
- строка
$type - Проверяемый тип контента.
- строка
$messageдополнительно '' - Сообщение об ошибке, которое будет добавлено к сгенерированному сообщению.
assertCookieисходный код публичный
assertCookie( string $expected , string $name , string $message '' )
Проверяет значения cookie
Параметры
- строка
$expected - Ожидаемое содержимое.
- строка
$name - Имя cookie.
- строка
$messageдополнительно '' - Сообщение об ошибке, которое будет добавлено к сгенерированному сообщению.
assertCookieEncryptedисходный код публичный
assertCookieEncrypted( string $expected , string $name , string|boolean $encrypt 'aes' , string|null $key null , string $message '' )
Проверяет значения cookie, зашифрованные компонентом CookieComponent.
Разница с assertCookie() заключается в том, что это расшифровывает значение cookie, как и компонент CookieComponent, для этой проверки.
Параметры
- строка
$expected - Ожидаемое содержимое.
- строка
$name - Имя cookie.
- строка|boolean
$encryptдополнительно 'aes' - Режим шифрования.
- строка|null
$keyдополнительно null - Ключ шифрования. По умолчанию равен Security.salt.
- строка
$messageдополнительно '' - Сообщение об ошибке, которое будет добавлено к сгенерированному сообщению.
См. также
CookieCryptTrait::_encryptassertHeaderисходный код публичный
assertHeader( string $header , string $content , string $message '' )
Проверяет заголовки ответа
Параметры
- строка
$header - Проверяемый заголовок
- строка
$content - Проверяемое содержимое.
- строка
$messageдополнительно '' - Сообщение об ошибке, которое будет добавлено к сгенерированному сообщению.
assertLayoutисходный код публичный
assertLayout( string $content , string $message '' )
Проверяет, что строка поиска содержалась в имени макета.
Параметры
- строка
$content - Проверяемое содержимое.
- строка
$messageдополнительно '' - Сообщение об ошибке, которое будет добавлено к сгенерированному сообщению.
assertNoRedirectисходный код публичный
assertNoRedirect( string $message '' )
Проверяет, что заголовок Location не установлен.
Параметры
- строка
$messageдополнительно '' - Сообщение об ошибке, которое будет добавлено к сгенерированному сообщению.
assertRedirectисходный код публичный
assertRedirect( string|array|null $url null , string $message '' )
Проверяет, что заголовок Location корректен.
Параметры
- строка|массив|null
$urlдополнительно null - Ожидаемый URL, на который должен перейти клиент. Может быть строкой URL или массивом, совместимым с Router::url(). Используйте null для проверки существования этого заголовка.
- строка
$messageдополнительно '' - Сообщение об ошибке, которое будет добавлено к сгенерированному сообщению.
assertRedirectContainssource public
assertRedirectContains( string $url , string $message '' )
Проверяет, что заголовок Location содержит подстроку
Параметры
- строка
$url - Адрес, куда, по ожиданию, должен перейти клиент.
- строка
$messageнеобязательно '' - Сообщение об ошибке, которое будет добавлено к сгенерированному сообщению.
assertResponseCodesource public
assertResponseCode( integer $code )
Проверяет определённый код состояния ответа.
Параметры
- целое число
$code - Код состояния для проверки.
assertResponseContainssource public
assertResponseContains( string $content , string $message '' )
Проверяет существование содержимого в теле ответа.
Параметры
- строка
$content - Содержимое для проверки.
- строка
$messageнеобязательно '' - Сообщение об ошибке, которое будет добавлено к сгенерированному сообщению.
assertResponseEmptysource public
assertResponseEmpty( string $message '' )
Проверка пустоты содержимого ответа.
Параметры
- строка
$messageнеобязательно '' - Сообщение об ошибке, которое будет добавлено к сгенерированному сообщению.
assertResponseEqualssource public
assertResponseEquals( mixed $content , string $message '' )
Проверяет существование содержимого в теле ответа.
Параметры
- смешанный
$content - Содержимое для проверки.
- строка
$messageнеобязательно '' - Сообщение об ошибке, которое будет добавлено к сгенерированному сообщению.
assertResponseErrorsource public
assertResponseError( )
Проверяет, что код состояния ответа находится в диапазоне 4xx.
assertResponseFailuresource public
assertResponseFailure( )
Проверяет, что код состояния ответа находится в диапазоне 5xx.
assertResponseNotContainssource public
assertResponseNotContains( string $content , string $message '' )
Проверяет, что содержимое в теле ответа отсутствует.
Параметры
- строка
$content - Содержимое для проверки.
- строка
$messageнеобязательно '' - Сообщение об ошибке, которое будет добавлено к сгенерированному сообщению.
assertResponseNotEmptysource public
assertResponseNotEmpty( string $message '' )
Проверка, что содержимое ответа не пустое.
Параметры
- строка
$messageнеобязательно '' - Сообщение об ошибке, которое будет добавлено к сгенерированному сообщению.
assertResponseOksource public
assertResponseOk( )
Проверяет, что код состояния ответа находится в диапазоне 2xx.
assertResponseSuccesssource public
assertResponseSuccess( )
Проверяет, что код состояния ответа находится в диапазоне 2xx/3xx.
assertSessionsource public
assertSession( string $expected , string $path , string $message '' )
Проверяет содержимое сессии
Параметры
- строка
$expected - Ожидаемое содержимое.
- строка
$path - Путь к данным сессии. Использует нотацию, совместимую с Hash::get().
- строка
$messageнеобязательно '' - Сообщение об ошибке, которое будет добавлено к сгенерированному сообщению.
assertTemplatesource public
assertTemplate( string $content , string $message '' )
Проверяет, что строка поиска содержалась в имени шаблона.
Параметры
- строка
$content - Содержимое для проверки.
- строка
$messageнеобязательно '' - Сообщение об ошибке, которое будет добавлено к сгенерированному сообщению.
configRequestsource public
configRequest( array $data )
Настраивает данные для следующего запроса.
Эти данные очищаются в методе tearDown().
Вы можете вызывать этот метод несколько раз для добавления в текущее состояние.
Параметры
- массив
$data - Данные запроса для использования.
controllerSpysource public
controllerSpy( Cake\Event\Event $event )
Добавляет дополнительные шпионские события в менеджер событий контроллера/представления.
Параметры
-
Cake\Event\Event$event - Событие диспетчера.
cookiesource public
cookie( string $name , mixed $value )
Устанавливает куку запроса для будущих запросов.
Этот метод позволяет настроить данные сессии, которые нужно использовать для последующих запросов. Состояние сессии сбрасывается в каждом tearDown().
Вы можете вызывать этот метод несколько раз для добавления в текущее состояние.
Параметры
- строка
$name - Имя куки для использования.
- смешанный
$value - Значение куки.
cookieEncryptedsource public
cookieEncrypted( string $name , mixed $value , string|boolean $encrypt 'aes' , string|null $key null )
Устанавливает зашифрованную куку запроса для будущих запросов.
Разница с cookie() заключается в том, что это шифрует значение куки, как CookieComponent.
Параметры
- строка
$name - Имя куки для использования.
- смешанный
$value - Значение куки.
- строка|булево
$encryptнеобязательно 'aes' - Режим шифрования для использования.
- строка|null
$keyнеобязательно null - Ключ шифрования. По умолчанию Security.salt.
См. также
CookieCryptTrait::_encryptdeletesource public
delete( string|array $url )
Выполняет запрос DELETE с использованием текущих данных запроса.
Ответ на отправленный запрос будет сохранен в качестве свойства. Вы можете использовать различные методы assert для проверки ответа.
Параметры
- строка|массив
$url - Адрес для запроса.
enableCsrfTokensource public
enableCsrfToken( )
Вызов этого метода добавит маркер CSRF в запрос.
Данные POST и куку будут заполнены, когда этот параметр включен. Будут использованы значения параметров по умолчанию.
enableSecurityTokensource public
enableSecurityToken( )
Вызов этого метода включит совместимый с SecurityComponent токен, который будет добавлен к данным запроса. Это позволит легко тестировать действия, защищённые SecurityComponent.
getsource public
get( string|array $url )
Выполняет GET-запрос, используя текущие данные запроса.
Ответ на отправленный запрос будет сохранён как свойство. Вы можете использовать различные методы проверки для проверки ответа.
Параметры
- string|array
$url - URL для запроса.
patchsource public
patch( string|array $url , array $data [] )
Выполняет PATCH-запрос, используя текущие данные запроса.
Ответ на отправленный запрос будет сохранён как свойство. Вы можете использовать различные методы проверки для проверки ответа.
Параметры
- string|array
$url - URL для запроса.
- array
$dataoptional [] - Данные для запроса.
postsource public
post( string|array $url , array $data [] )
Выполняет POST-запрос, используя текущие данные запроса.
Ответ на отправленный запрос будет сохранён как свойство. Вы можете использовать различные методы проверки для проверки ответа.
Параметры
- string|array
$url - URL для запроса.
- array
$dataoptional [] - Данные для запроса.
putsource public
put( string|array $url , array $data [] )
Выполняет PUT-запрос, используя текущие данные запроса.
Ответ на отправленный запрос будет сохранён как свойство. Вы можете использовать различные методы проверки для проверки ответа.
Параметры
- string|array
$url - URL для запроса.
- array
$dataoptional [] - Данные для запроса.
sessionsource public
session( array $data )
Устанавливает данные сессии.
Этот метод позволяет настроить данные сессии, которые будут использоваться для последующих запросов. Состояние сессии сбрасывается в каждом tearDown().
Вы можете вызывать этот метод несколько раз, чтобы добавить данные в текущее состояние.
Параметры
- array
$data - Данные сессии для использования.
tearDownsource public
tearDown( )
Очищает состояние, используемое для запросов.
Overrides
Cake\TestSuite\TestCase::tearDown() viewVariablesource public
viewVariable( string $name )
Извлекает переменную представления по имени.
Если переменная представления не существует, возвращается null.
Параметры
- string
$name - Переменная представления для получения.
Возвращает
mixedПеременную представления, если она установлена.
Методы, унаследованные от Cake\TestSuite\TestCase
_assertAttributessource protected
_assertAttributes( array $assertions , string $string , boolean $fullDebug false , array $regex '' )
Проверка атрибутов как часть проверки assertTags().
Параметры
- array
$assertions - Проверки для выполнения.
- string
$string - Строка HTML для проверки.
- boolean
$fullDebugoptional false - Использовать ли более подробный вывод.
- array
$regexoptional '' - Полный регулярный выражение из
assertHtml
Возвращает
stringстрока
_normalizePathsource protected
_normalizePath( string $path )
Нормализует путь для сравнения.
Параметры
- string
$path - Путь, разделённый символом "/".
Возвращает
stringНормализованный путь, разделённый DS.
assertHtmlsource public
assertHtml( array $expected , string $string , boolean $fullDebug false )
Проверяет теги HTML.
Принимает массив $expected и генерирует регулярное выражение для сопоставления с предоставленной строкой $string. Примеры для $expected:
Проверка тега input с атрибутом name (содержащим любое ненулевое значение) и атрибутом id, содержащим 'my-input':
['input' => ['name', 'id' => 'my-input']]
Проверка двух тегов p с некоторым текстом в них:
[ ['p' => true], 'textA', '/p', ['p' => true], 'textB', '/p' ]
Вы также можете указать выражение шаблона в качестве части значений атрибутов или определённого тега, если вы добавите значение с префиксом preg: и заключите его в косые черты, например:
[ ['input' => ['name', 'id' => 'preg:/FieldName\d+/']], 'preg:/My\s+field/' ]
Важно: эта функция очень снисходительна к пробелам и также принимает любую перестановку порядка атрибутов. Она также позволит использовать пробелы между указанными тегами.
Параметры
- array
$expected - Массив, см. выше
- string
$string - Строка HTML/XHTML/XML
- boolean
$fullDebugoptional false - Использовать ли более подробный вывод.
Возвращает
booleanbool
assertNotWithinRangesource protected static
assertNotWithinRange( float $expected , float $result , float $margin , string $message '' )
Функция совместимости для проверки, что значение не находится в допустимом диапазоне.
Параметры
- float
$expected - float
$result - float
$margin - диапазон допустимости
- string
$messageoptional '' - текст для отображения при ошибке проверки
assertPathEqualssource protected static
assertPathEquals( string $expected , string $result , string $message '' )
Функция совместимости для проверки путей.
Параметры
- string
$expected - string
$result - string
$messageoptional '' - текст для отображения при ошибке проверки
assertTagssource public
assertTags( string $string , array $expected , boolean $fullDebug false )
Проверяет теги HTML.
Устарело
3.0. Используйте assertHtml() вместо этого.Параметры
- string
$string - Строка HTML/XHTML/XML
- array
$expected - Массив, см. выше
- boolean
$fullDebugoptional false - Использовать ли более подробный вывод.
assertTextContainssource public
assertTextContains( string $needle , string $haystack , string $message '' , boolean $ignoreCase false )
Проверяет, что строка содержит другую строку, игнорируя различия в символах новой строки. Полезно для проведения кросс-платформенных тестов блоков текста.
Параметры
- string
$needle - Строка для поиска.
- string
$haystack - Строка, в которой искать.
- string
$messageoptional '' - Сообщение для отображения при ошибке.
- boolean
$ignoreCaseoptional false - Использовать ли чувствительность к регистру при поиске.
assertTextEndsNotWithsource public
assertTextEndsNotWith( string $suffix , string $string , string $message '' )
Утверждает, что строка не заканчивается заданным префиксом, игнорируя различия в новой строке. Полезно для проведения кросс-платформенных тестов блоков текста.
Параметры
- string
$suffix - Суффикс, которого не должно быть.
- string
$string - Строка для поиска.
- string
$messageнеобязательно '' - Сообщение для использования при ошибке.
assertTextEndsWithsource public
assertTextEndsWith( string $suffix , string $string , string $message '' )
Утверждает, что строка заканчивается заданным префиксом, игнорируя различия в новой строке. Полезно для проведения кросс-платформенных тестов блоков текста.
Параметры
- string
$suffix - Суффикс для поиска.
- string
$string - Строка для поиска.
- string
$messageнеобязательно '' - Сообщение для использования при ошибке.
assertTextEqualssource public
assertTextEquals( string $expected , string $result , string $message '' )
Утверждение равенства текста, игнорируя различия в новых строках. Полезно для проведения кросс-платформенных тестов блоков текста.
Параметры
- string
$expected - Ожидаемое значение.
- string
$result - Фактическое значение.
- string
$messageнеобязательно '' - Сообщение для использования при ошибке.
assertTextNotContainssource public
assertTextNotContains( string $needle , string $haystack , string $message '' , boolean $ignoreCase false )
Утверждение, что текст не содержит другой текст, игнорируя различия в новых строках. Полезно для проведения кросс-платформенных тестов блоков текста.
Параметры
- string
$needle - Строка для поиска.
- string
$haystack - Строка для поиска в ней.
- string
$messageнеобязательно '' - Сообщение для отображения при ошибке.
- boolean
$ignoreCaseнеобязательно false - Указывает, будет ли поиск регистрозависимым.
assertTextNotEqualssource public
assertTextNotEquals( string $expected , string $result , string $message '' )
Утверждение неравенства текста, игнорируя различия в новых строках. Полезно для проведения кросс-платформенных тестов блоков текста.
Параметры
- string
$expected - Ожидаемое значение.
- string
$result - Фактическое значение.
- string
$messageнеобязательно '' - Сообщение для использования при ошибке.
assertTextStartsNotWithsource public
assertTextStartsNotWith( string $prefix , string $string , string $message '' )
Утверждает, что строка не начинается с заданного префикса, игнорируя различия в новых строках. Полезно для проведения кросс-платформенных тестов блоков текста.
Параметры
- string
$prefix - Префикс, которого не должно быть.
- string
$string - Строка для поиска.
- string
$messageнеобязательно '' - Сообщение для использования при ошибке.
assertTextStartsWithsource public
assertTextStartsWith( string $prefix , string $string , string $message '' )
Утверждает, что строка начинается с заданного префикса, игнорируя различия в новых строках. Полезно для проведения кросс-платформенных тестов блоков текста.
Параметры
- string
$prefix - Префикс для проверки.
- string
$string - Строка для поиска.
- string
$messageнеобязательно '' - Сообщение для использования при ошибке.
assertWithinRangesource protected static
assertWithinRange( float $expected , float $result , float $margin , string $message '' )
Функция совместимости для проверки, находится ли значение в допустимом диапазоне.
Параметры
- float
$expected - float
$result - float
$margin - Диапазон приемлемости.
- string
$messageнеобязательно '' - Текст для отображения, если утверждение неверно.
getMockForModelsource public
getMockForModel( string $alias , array $methods [] , array $options [] )
Создать макет модели, сохраняя фикстуры и ассоциации таблиц.
Параметры
- string
$alias - Модель для создания макета.
- array
$methodsнеобязательно [] - Список методов для имитации.
- array
$optionsнеобязательно [] - Данные конфигурации для конструктора макета.
Возвращает
Cake\ORM\Table|PHPUnit_Framework_MockObject_MockObject\Cake\ORM\Table|\PHPUnit_Framework_MockObject_MockObject
Исключения
Cake\ORM\Exception\MissingTableClassException\Cake\ORM\Exception\MissingTableClassException
loadFixturessource public
loadFixtures( )
Выбирает фикстуры для загрузки для данного теста.
Каждый параметр — имя модели, соответствующее фикстуре, например, «Posts», «Authors» и т. д.
Исключения
Exceptionесли менеджер фикстур недоступен.
См. также
Cake\TestSuite\TestCase::$autoFixturessetUpsource public
setUp( )
Настройка тестового случая, резервное копирование значений статического объекта, чтобы их можно было восстановить. В частности, резервируются содержимое Configure и пути в App, если они еще не были скопированы.
skipIfsource public
skipIf( boolean $shouldSkip , string $message '' )
Переопределяет SimpleTestCase::skipIf, чтобы предоставить булевое возвращаемое значение.
Параметры
- boolean
$shouldSkip - Указывает, нужно ли пропустить тест.
- string
$messageнеобязательно '' - Сообщение для отображения.
Возвращает
booleanbool
skipUnlesssource protected
skipUnless( boolean $condition , string $message '' )
Функция совместимости для пропуска.
Параметры
- boolean
$condition - Условие для запуска пропуска.
- string
$messageнеобязательно '' - Сообщение для пропуска.
Возвращает
booleanbool
Методы, используемые из Cake\Utility\CookieCryptTrait
_checkCiphersource protected
_checkCipher( string $encrypt )
Вспомогательный метод для проверки имен шифров шифрования.
Параметры
- string
$encrypt - Имя шифра.
Исключения
RuntimeExceptionПри предоставлении недопустимого шифра.
_decodesource protected
_decode( string $value , string|false $encrypt )
Декодирует и расшифровывает одно значение.
Параметры
- string
$value - Значение для декодирования и расшифровки.
- string|false
$encrypt - Используемый шифр шифрования.
Возвращает
stringДекодированное значение.
_decryptsource protected
_decrypt( array $values , string|boolean $mode )
Расшифровывает $value с помощью метода public $type в классе Security
Параметры
- массив
$values - Значения для расшифровки
- строка|логическое
$mode - Режим шифрования
Возвращает
stringрасшифрованная строка
_encryptsource protected
_encrypt( string $value , string|boolean $encrypt , string|null $key null )
Шифрует $value с помощью метода public $type в классе Security
Параметры
- строка
$value - Значение для шифрования
- строка|логическое
$encrypt - Режим шифрования для использования. False отключает шифрование.
- строка|null
$keyoptional null - Используется в качестве ключа безопасности только в этот момент для тестов, если указано.
Возвращает
stringКодированные значения
_explodesource protected
_explode( string $string )
Метод explode, возвращающий массив из строки, заданной в CookieComponent::_implode() Поддерживает обратную совместимость с CookieComponent::_implode() версии 1.x.
Параметры
- строка
$string - Строка, содержащая данные, закодированные в JSON, или обычная строка.
Возвращает
arrayКарта ключей и значений
_implodesource protected
_implode( array $array )
Метод implode, сохраняющий ключи в многомерных массивах
Параметры
- массив
$array - Карта ключей и значений
Возвращает
stringСтрока, закодированная в json.
Методы, используемые из Cake\View\Helper\SecureFieldTokenTrait
_buildFieldTokensource protected
_buildFieldToken( string $url , array $fields , array $unlockedFields [] )
Генерирует данные токена для предоставленных входных данных.
Параметры
- строка
$url - URL, на который отправляется форма.
- массив
$fields - Если указано, определяет список полей, используемых при генерации хэша.
- массив
$unlockedFieldsoptional [] - Список полей, исключенных из проверки валидности.
Возвращает
arrayДанные токена.
Краткое описание свойств
Свойства, унаследованные от Cake\TestSuite\TestCase
$autoFixturessource
public массив
По умолчанию все фикстуры, присоединенные к этому классу, будут обнуляться и перезагружаться после каждого теста. Установите это значение в false, чтобы обработать вручную
true $dropTablessource
public логическое
Управление созданием/удалением таблиц в каждом методе теста.
Если true, таблицы все равно будут удаляться в конце выполнения каждого тестового прогона.
false $fixtureManagersource
public Cake\TestSuite\Fixture\FixtureManager
Класс, ответственный за управление созданием, загрузкой и удалением фикстур
null Свойства, используемые из Cake\Utility\CookieCryptTrait
$_validCipherssource
protected array
Допустимые имена шифров для зашифрованных куки.
['aes', 'rijndael']
© 2005–2016 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
http://api.cakephp.org/3.1/class-Cake.TestSuite.IntegrationTestCase.html