在phpUnit中使用客户端的请求给出了与cURL不同的响应

时间:2016-09-29 12:17:09

标签: curl phpunit symfony

我在phpUnit中与客户端的请求给出了与cURL不同的响应。

这怎么可能?

    //Curl
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, "http://localhost:8888/web/app_dev.php/api/v1/users/16");  
    $output = curl_exec($ch);
    dump($output);

    dump("--------");

    //phpUnit Client
    $client = static::createClient();
    $client->request('GET', '/api/v1/users/16');
    $content = json_decode($client->getResponse()->getContent(), true);
    dump($content);

对策:

{
    "id":16,
    "email":"gmail@gmail.com",
    "first_name":"Olivier",
    "last_name":"Peano",
    "sex":"Femme",
    "promotion":"Bac +1",
    "telephone":"0606060606",
}


"--------"

array:7 [
        "id"            => 16
        "first_name"    => "Lea"
        "last_name"     => "Peano"
        "sex"           => "Femme"
        "promotion"     => "Bac +1"
        "telephone"     => "0606060606"
]

电子邮件显示为cUrl,而不是客户端。

这两种方法之间有不同之处吗?

我使用Symfony3,FOSUserBundle和FOSRestBundle。但这并不重要,因为我发送了相同的请求。

1 个答案:

答案 0 :(得分:0)

正如@BVengerov所说:

  

好像您正在使用与http://localhost:8888/web/app_dev.php/

不同的基本网址创建客户端

我已将其修复为:

$client = static::createClient(array(), array('HTTP_HOST' => 'symfony.dev'));
$client->followRedirects(true);

谢谢。