Как выполнить модульный тест для моего кода, который обрабатывает HTTP-запросы. Вместо того, чтобы делать фактический HTTP-вызов, я хочу использовать макетные объекты и проверять, что http-запрос имеет правильный набор тегов и заголовков.PHPUnit mock request object and extract body и заголовок
ответ
Ваше описание не содержит большого количества информации. Но для начала я могу помочь вам использовать этот пример кода.
$httpMock = $this->getMockBuilder('\Vendor\Path\HttpHandlerYouWantToMock')
->disableOriginalConstructor()
->setMethods(['setBody', 'setHeader'])
->getMock();
$httpMock->expects($this->once())
->method('setBody')
->with($this->identicalTo('{"test":"test"}'));
$httpMock->expects($this->once())
->method('setHeader')
->with($this->identicalTo('Content-Type: application/json'));
$service = new SomeService($httpMock);
$service->post('/someApi', '{"test":"test"}');
Этот код только в представлении, как все должно выглядеть, но в вашем случае я понятия не имею, что HTTP обработчик вы используете или если один содержит какие-либо другие услуги, которые зависят от.
Так что основная идея просто издеваться над всеми вашими услугами, которые используются вашим собственным сервисом. И определите для этого макет, какие методы, по вашему мнению, будут использоваться, какие данные должны быть переданы там.
И последний помощью PHPUnit документации https://phpunit.de/manual/current/en/test-doubles.html
Я боюсь, что он не использует класс http - вместо этого использует 'curl_init 'непосредственно ... – iRaS
- 1. PHPUnit mock object methods
- 2. PHPUnit и Kohana Request object
- 3. Mock Object and Interface
- 4. Mock object and Spring annotations
- 5. Как сбросить ожидания на PHPUnit mock object
- 6. phpunit - mockbuilder - установить внутреннее свойство mock object
- 7. Mock object в PHPUnit не вызывается
- 8. PHPUnit mock using mock
- 9. Struts and logging HTTP POST request body
- 10. Symfony PHPUnit mock SwiftMailer
- 11. PHPUnit Mock Несколько ожиданий
- 12. Regex Extract html Body
- 13. PHPUnit: mock несуществующие классы
- 14. AngularJS - Request Body Request POST
- 15. Mock ArrayObject с PHPUnit
- 16. Функция PHPUnit mock?
- 17. PHPUnit Mock Exception
- 18. PHPUnit, mock constructor?
- 19. Symfony/PHPUnit mock services
- 20. Phpunit mock частная функция
- 21. Request Body Empty with Express Body Parser
- 22. Mock Request Object для теста API Web API
- 23. node.js request object-return response body для дальнейшей работы
- 24. Http post request-body
- 25. apiclient.discovery.build POST request body
- 26. Modify Request Body
- 27. NodeJS Request Body Empty
- 28. phpunit test с PDO mock
- 29. http request get body
- 30. PHPUnit Mock несколько разных методов
Это слишком мало информации. Отправьте код, который вы хотите проверить, и, возможно, мы сможем сказать, как его протестировать. Прежде всего, вам нужен код, который может получать издевавшиеся объекты и использовать их. И по этому определению вам нужно использовать класс для http-запросов - пример для curl: https://gitlab.w00tserver.org:617/snippets/2 – iRaS