В документах Mockery есть примеры для насмешливых классов и их членов, но я не вижу деталей для насмешливых включенных функций. Я хотел бы посмеяться над реализацией для wp_send_json()
, которая вводится /wp-includes/functions.php
. Можно использовать издевательство или любую другую библиотеку php.
Вот использование wp_send_json()
. Переопределение этой функции позволит мне запустить json_encode () для входного значения и затем вернуть его для чистого модульного теста:
function handleAjax() {
$name = $_POST['name'];
return wp_send_json($name);
}
В моем тестовом наборе я называю это так:
use \Symfony\Component\HttpFoundation\Request;
class UtilitiesTest extends \Codeception\TestCase\WpTestCase {
_before() {
}
testHandleAjax() {
$request = Request::create(
null,
'POST',
['name' => 'John']
);
$request->overrideGlobals(); // $_POST is now mocked
$result = handleAjax();
$this->assertEquals('John', $result);
}
}
Как можно бесклассовую функцию wp_send_json()
смоделировать / переопределить для тестирования?