2016-10-14 4 views
0

PHPUnitとGuzzleを使用していくつかのAPIをテストしましたが、次の単体テストを実行すると正しいjsonが返されません。コードの何が間違っていますか?PHPUnit Guzz Responseが動作しない

.                 1/1 (100%)object(GuzzleHttp\Psr7\Stream)#39 (7) { 
    ["stream":"GuzzleHttp\Psr7\Stream":private]=> 
    resource(1127) of type (stream) 
    ["size":"GuzzleHttp\Psr7\Stream":private]=> 
    NULL 
    ["seekable":"GuzzleHttp\Psr7\Stream":private]=> 
    bool(true) 
    ["readable":"GuzzleHttp\Psr7\Stream":private]=> 
    bool(true) 
    ["writable":"GuzzleHttp\Psr7\Stream":private]=> 
    bool(true) 
    ["uri":"GuzzleHttp\Psr7\Stream":private]=> 
    string(10) "php://temp" 
    ["customMetadata":"GuzzleHttp\Psr7\Stream":private]=> 
    array(0) { 
    } 
} 

答えて

0

docsから:ここで

<?php 

require('vendor/autoload.php'); 

class TestAll extends PHPUnit_Framework_TestCase 
{ 
    protected $client; 

    protected function setUp() 
    { 
     $this->client = new GuzzleHttp\Client([ 
      'base_uri' => 'https://url', 
      'verify' => false, 
      'headers' => ['Accept' => 'application/json'] 

      ]); 
    } 

    public function testGet_ValidInput_TestAllObject() 
    { 
     $response = $this->client->get('/test_all'); 
     var_dump($response->getBody()); 
     $this->assertEquals(200, $response->getStatusCode()); 
     $data = json_decode($response->getBody(), true); 

    } 
} 

は、私が取得していますものです

応答のエンティティボディオブジェクトは> getBody($対応 - を呼び出すことによって取得することができます) 。

/** 
* Get the body of the message 
* 
* @return StreamInterface|null 
*/ 
public function getBody(); 

何が必要なの解析し、(既に復号化)JSONレスポンスボディを返すjson()方法を使用することです:

また、がつがつ食うのコードを見て、それがStreamInterfaceを実装するオブジェクトを返します明らかです。以下を試してください:

public function testGet_ValidInput_TestAllObject() 
{ 
    $response = $this->client->get('/test_all'); 
    $this->assertEquals(200, $response->getStatusCode()); 
    $data = $response->json(); 
    var_dump($data); 
} 
関連する問題