Comment on page
Testing API requests
When testing HTTP requests you need to create mock responses based on what would actually be returned from a real HTTP request. Symfony's HTTPClient has support for testing HTTP requests.
You can also use
MockResponseFromFile
to generate a mock response easily from a file.Allows you to load a mock request from file.
$filename (string)
File to load mock response from
Body file is loaded from
{$filename}
The optional info file is loaded from
{$filename}.info.php
and must contain the $info
variable (array). By default mock responses return a 200 status code which you can change by setting the $info
array.The following code loads
./responses/api-test.json
and if it exists ./responses/api-test.json.info.php
to create a mock response.use Symfony\Component\HttpClient\MockHttpClient;
use Strata\Data\Api_DELETE\RestApi;
use Strata\Data\Response\MockResponseFromFile;
$responses = [
new MockResponseFromFile(__DIR__ . '/responses/api-test.json'),
];
$api = new RestApi('https://example.com/');
$api->setClient(new MockHttpClient($responses, 'https://example.com/'));
$response = $api->get('test');
// Outputs:404
echo $response->getStatusCode();
// Outputs: JSON response content
echo $response->getContent();
// Outputs: 0
echo $api->getHeader($response, 'X-Total-Results');
{
"message": "PAGE NOT FOUND"
}
<?php
$info = [
'http_code' => 404,
'response_headers' => [
'X-Total-Results' => '0'
]
];
http_code (int)
- the last HTTP response coderesponse_headers (array)
- an array of response headers
Last modified 9mo ago