0

Laravel 5.5のテストに問題があります。私はTESTヘッダ内のベアラトークンを送信する必要がありますが、私はddは($応答)する場合Laravel 5.5 JSONヘッダーのテストが機能しない

public function testAuthCheckinvalidToken() 
    { 
     $response = $this->withHeaders([ 
      'Accept' => 'application/json', 
      'Content-Type' => 'application/json', 
      'Authorization' => 'Bearer ' . $this->token, 
     ])->json('GET', 'auth/check'); 
    ... 
    } 

機能しない、唯一のデフォルトのヘッダが設定されます。

#headers: array:5 [ 
      "cache-control" => array:1 [ 
       0 => "no-cache, private" 
      ] 
      "date" => array:1 [ 
       0 => "Tue, 21 Nov 2017 18:48:27 GMT" 
      ] 
      "content-type" => array:1 [ 
       0 => "application/json" 
      ] 
      "x-ratelimit-limit" => array:1 [ 
       0 => 60 
      ] 
      "x-ratelimit-remaining" => array:1 [ 
       0 => 59 
      ] 
      ] 

私のヘッダがありません現れる。 私は正しいと思います

答えて

0

ここで設定したヘッダーは、明らかにリクエストのためのものです。レスポンスでは、Laravelアプリケーションのヘッダーを取得していますので、リクエストに設定したヘッダーは表示されません。

ここで設定したヘッダーを確認するには、テストではなくdd($request);をアプリで実行する必要があります。

テスト/ Feafure/ExampleTest.php

<?php 

namespace Tests\Feature; 

use Tests\TestCase; 

class ExampleTest extends TestCase 
{ 

    public function testBasicTest() 
    { 
     $response = $this->withHeaders([ 
      'Accept' => 'application/json', 
      'Content-Type' => 'application/json', 
      'Authorization' => 'Bearer ' . 'abc', 
     ])->json('GET', 'auth/check'); 
    } 
} 

ルート/ web.php:ヘッダはアプリケーションに全体のテストコードを渡されることを確認する

EDIT

Route::get('auth/check', function() { 
    dd(request()->headers); 
}); 

私は今、テストを実行するときに:

./vendor/bin/phpunit 

結果は次のとおりです。

Symfony\Component\HttpFoundation\HeaderBag {#49 #headers: array:8 [ 
    "host" => array:1 [ 
     0 => "localhost" 
    ] 
    "user-agent" => array:1 [ 
     0 => "Symfony/3.X" 
    ] 
    "accept" => array:1 [ 
     0 => "application/json" 
    ] 
    "accept-language" => array:1 [ 
     0 => "en-us,en;q=0.5" 
    ] 
    "accept-charset" => array:1 [ 
     0 => "ISO-8859-1,utf-8;q=0.7,*;q=0.7" 
    ] 
    "content-type" => array:1 [ 
     0 => "application/json" 
    ] 
    "authorization" => array:1 [ 
     0 => "Bearer abc" 
    ] 
    "content-length" => array:1 [ 
     0 => 2 
    ] ] #cacheControl: [] } 

あなたがテストからのヘッダがアプリケーション

+0

に渡される参照ように実際に私のヘッダが送信されていません、だから、私の要求は失敗する –

+0

@FernandoHeriqueRubimPioli私の編集を見て、すべてが期待どおりに機能している –

+0

はい、今私は理解して、ありがとう –

関連する問題