Тестирование веб-служб RESTful с использованием PHPUnit

Может кто-нибудь, пожалуйста, дайте мне знать, как протестировать веб-службы RESTful с помощью PHPUnit? У PHPUnit нет такой возможности.

Представление запроса в объект запроса . Таким образом, вы можете протестировать свой код, не выполняя настоящие запросы. Тестирование легко.

class RequestTest extends PHPUnit_Framework_TestCase { public function testRequest() { $request = new Request(); $request->setMethod('PUT'); $request->setPutData(…); $this->assertSomething( $this->testSubjectUsingRequest->process($request) ); } } 

В случае, если вы хотите протестировать ответы из Webservice, mock / заглушите API веб-службы.

В главе PHPUnit о Stubbing и Mocking Web Services есть глава, хотя предлагаемые встроенные средства для веб-серфинга для веб-сервисов применяются к Soap Services с WSDL, поэтому вам придется настраивать свои Mocks вручную (так же, как и с любым издеваемым ресурсом ).

Если это не ответит на ваш вопрос, уточните свой вопрос с более подробной информацией о службе RESTful, что вы пытаетесь сделать / протестировать с ним.

OnionTest http://www.oniontest.org/ У меня была такая же проблема. Selenium, PHPUNIT отлично, но его задача – быстро и легко протестировать службы отдыха / http. Я потратил большую часть своего времени, очистил базы данных, подделал http-post с помощью браузеров / скриптов, проверил результаты в db, список продолжает 🙂 Итак, я написал OnionTest

Все сводится к нескольким текстовым файлам, у вас есть urls.txt, который вызывается и сравнивается с вашим onions.txt (вашими тестовыми утверждениями), которые вы написали. Написать лук 🙂

Это дает мне следующее

  • ЛЕГКО / БЫСТРЫЙ способ делать URL-адреса GET / POST с параметрами
  • Проверьте ответ (код, тело) с точки зрения текста и текста, которые он не должен иметь.
  • Выполнить выражение xpath (xml) при ответе, а также подсчитать результаты xpath
  • Подробный URL-адрес! (звучит просто), но DAMN полезно! Первое, что вы делаете после получения странных результатов. Сбросьте URL-адрес / звонок. OnionTest вы просто установили «verbose || 1» для URL-адреса

O, и это БЕСПЛАТНО, и это в BETA, и это был проект на выходные, который все еще продолжается, но очень полезен! См. Руководство по началу работы для быстрого Hello World. Другие мудрые см. «Примеры страниц» для быстрого «TableRowCount» и «TableRowRecord» OnionTest

Бесстыдное самосовершенствование! Написать лук 🙂