Как стать автором
Обновить

PHPixie Illusion — простой mock HTTP сервер для ваших тестов

Время на прочтение1 мин
Количество просмотров3.9K
image
Вышел еще один полезный инструмент для тестирования, PHPixie Illusion.
Если ваше приложение зависит от внешних API то вы наверняка сталкивались с проблемой как представить их в своих тестах. Как раз эту проблему и решает Illusion. Она создает отдельный HTTP сервер на указанном порте и позволяет вам легко управлять его роутами и результатами включая HTTP заголовки. И
все это предельно просто:

//Создаем сервер и клиент
$illusion = \PHPixie\Illusion::start($port = 4747);
 
//Добавляем роут и получаем его ссылку
$url = $illusion->route('/pixie/fairy', 'Trixie');
 
//И теперь
echo file_get_contents($url); // 'Trixie'
 
//Также можно задавать HTTP метод роута
//и заголовки ответа
$headers = array('Content-Type: text/plain');
$url = $illusion->route('/pixie', 'PHPixie', 'GET', $headers);

//Для остановки сервера
$client->stopServer();
//но сервер останавливается автоматически
//в деструкторе клиента


Как это работает ?

Довольно просто. В отдельном процессе запускается немного модифицированный StupidHTTP сервер, к которому добавляются два сокета для перекидывания уведомлений с клиентом. Получив соответствующую команду сервер добавляет роут к своей конфигурации.

Надо заметить что поскольку сервер получает отдельный процесс возможный вариант когда главный поток закончиться а сервер останется висеть ( например при исключении ). Чтобы избежать такого поведения можно поставить вызов к stopServer() в обработчик исключений в вашем тесте.
Теги:
Хабы:
+2
Комментарии2

Публикации

Истории

Работа

PHP программист
159 вакансий

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн