Codeception\Util\JsonType
JsonType сопоставляет структуры JSON с шаблонами. Вы можете указать тип полей в JSON или добавить дополнительные правила проверки.
JsonType используется модулем REST в методах seeResponseMatchesJsonType и dontSeeResponseMatchesJsonType.
Пример использования:
<?php $jsonType = new JsonType(['name' => 'davert', 'id' => 1]); $jsonType->matches([ 'name' => 'string:!empty', 'id' => 'integer:>0|string:>0', ]); // => true $jsonType->matches([ 'id' => 'string', ]); // => `id: 1` is not of type string ?>
Класс JsonType @package Codeception\Util
__construct()
public __construct($jsonArray)
Создаёт экземпляр JsonType. Передайте массив или \Codeception\Util\JsonArray с данными. Если передан не ассоциативный массив, то первый элемент будет использован для сопоставления.
-
param$jsonArray array\Codeception\Util\JsonArray
addCustomFilter()
public static addCustomFilter($name, callable $callable)
Добавляет пользовательский фильтр в список JsonType. Вы должны указать имя и параметры фильтра.
Пример:
<?php
JsonType::addCustomFilter('slug', function($value) {
return strpos(' ', $value) !== false;
});
// => use it as 'string:slug'
// add custom function to matcher with `len($val)` syntax
// parameter matching patterns should be valid regex and start with `/` char
JsonType::addCustomFilter('/len\((.*?)\)/', function($value, $len) {
return strlen($value) == $len;
});
// use it as 'string:len(5)'
?> -
param$name -
param callable$callable
cleanCustomFilters()
public static cleanCustomFilters()
Удаляет все пользовательские фильтры
matches()
public matches(array $jsonType)
Проверяет данные на соответствие переданному JsonType. Если сопоставление не удается, функция возвращает строку с сообщением об ошибке. При успешном сопоставлении возвращает true.
-
param array$jsonType -
returnboolstring
© 2011 Michael Bodnarchuk and contributors
Licensed under the MIT License.
https://codeception.com/docs/reference/JsonType