Как видите, из исходного кода клиент, выполняющий запросы, определяется как служба под названием «test.client».
namespace Symfony\Bundle\FrameworkBundle\Test;
use Symfony\Bundle\FrameworkBundle\Client;
abstract class WebTestCase extends KernelTestCase
{
protected static function createClient(array $options = array(), array $server = array())
{
static::bootKernel($options);
$client = static::$kernel->getContainer()->get('test.client');
$client->setServerParameters($server);
return $client;
}
}
И услуга определяется как
<service id="test.client" class="Symfony\Bundle\FrameworkBundle\Client" shared="false">
<argument type="service" id="kernel" />
<argument>%test.client.parameters%</argument>
<argument type="service" id="test.client.history" />
<argument type="service" id="test.client.cookiejar" />
</service>
Symfony\Component\BrowserKit\Client::doRquest()
- это тот, кто делает запрос. Является ли абстрактный метод реализованным в Symfony\Component\HttpKernel\Client::doRequest()
:
protected function doRequest($request)
{
$response = $this->kernel->handle($request);
if ($this->kernel instanceof TerminableInterface) {
$this->kernel->terminate($request, $response);
}
return $response;
}
Это означает, что запрос должен обрабатываться ядром. ... Углубляясь в код Вы можете видеть, что запрос должен совпадать с сервисом сопоставления. Это означает, что вы не можете запрашивать ресурсы вне symfony.
Если вы не знаете, как тестировать устаревший код,... вы можете использовать клиент Guzzle.
public function test200()
{
$client = new GuzzleHttp\Client();
$res = $client->request('GET', 'https://www.example.com');
$this->assertEquals(
200,
$res->getStatusCode()
);
}
person
sensorario
schedule
25.05.2017