Может кто-нибудь, пожалуйста, дайте мне знать, как протестировать веб-службы RESTful с помощью PHPUnit? У PHPUnit нет такой возможности.
Тестирование веб-служб RESTful с использованием PHPUnit
Ответ 1
Провести запрос в Объект запроса. Таким образом, вы можете протестировать свой код, не выполняя настоящие запросы. Тестирование легко.
class RequestTest extends PHPUnit_Framework_TestCase
{
public function testRequest()
{
$request = new Request();
$request->setMethod('PUT');
$request->setPutData(…);
$this->assertSomething(
$this->testSubjectUsingRequest->process($request)
);
}
}
В случае, если вы хотите протестировать ответы из веб-службы, извините/закройте API веб-службы.
В главе PHPUnit есть глава о Stubbing and Mocking Web Services, хотя предлагаемые встроенные средства для веб-серфинга применяются к Soap Services с WSDL, поэтому вам придется настраивать свои Mocks вручную (так же, как и с любым издеваемым ресурсом).
Если это не ответит на ваш вопрос, уточните свой вопрос с более подробной информацией о службе RESTful, что вы пытаетесь сделать/протестируете с ней.
Ответ 2
OnionTest http://www.oniontest.org/ У меня была точно такая же проблема. Selenium, PHPUNIT отлично, но его задача - быстро и легко протестировать службы отдыха /http. Я потратил большую часть своего времени, очистил базы данных, подделал http-post с помощью браузеров/скриптов, проверил результаты в db, список продолжает:) Итак, я написал OnionTest
Все сводится к нескольким текстовым файлам, у вас есть urls.txt, который вызывается и сравнивается с вашим onions.txt(вашими тестовыми утверждениями), которые вы написали. Напишите лук:)
Он дает мне следующее
- EASY/FAST способ сделать URL-адреса GET/POST с параметрами
- Проверить ответ (код, тело) с точки зрения текста и текста, которые он не должен иметь.
- Выполнить выражение xpath (xml) в ответе, а также результаты count xpath
- Многоязычные звонки! (звучит просто), но DAMN полезно! Первое, что вы делаете после получения странных результатов. Сбросьте URL-адрес/звонок. OnionTest вы просто установили "verbose || 1" для URL-адреса
O, и это БЕСПЛАТНО, и его в BETA, и это был проект на выходные, все еще переходящий, но очень удобный! См. Руководство по началу работы для быстрого Hello World. Другие мудрые см. "Примеры страниц" для быстрого "TableRowCount" и "TableRowRecord" OnionTest
Бесстыдная самопомощь! Написать лук:)