2017-12-19 42 views
0

私はLaravelテストを学んでおり、Laravel Framework Assertionsを使いたいと思います。私のテストでassertViewHasメソッドを使用できません

public function __construct() 
{ 
    $this->mock = Mockery::mock("Eloquent", "Post"); 
} 

public function testIndex() 
{ 
    $this->mock 
     ->shouldReceive('all') 
     ->once() 
     ->andReturn('foo'); 

    $this->app->instance('Post', $this->mock); 
    $this->call('GET', 'posts'); 
    $this->assertViewHas('posts'); // This method seem can't be find 
} 

私のIDEは、それはそれを見つけることができない方法を自動補完することができないので、assertViewHas方法が存在しないようですが、私はLaravel 5.5 APIで検索するとき、私は中assertViewHas方法でその方法を見つけますTestResponseクラス内のIlluminate/Foundation/Testing名前空間。 この問題をどうやって解決できますか?

もう1つの問題は、私のPostモデルを模擬するために嘲笑を使用していますが、端末にvendor\bin\phpunitを実行するとエラーが発生するということです。あなたは、実行中の

$response = $this->call('GET', 'posts'); 
$response->assertViewHas('posts'); 

デフォルトの方法を使用する必要があります

$this->call('GET', 'posts'); 
$this->assertViewHas('posts'); // This method seem can't be find 

array_merge()はの

+0

あなたのテストクラスはLaravelの 'TestCase'クラスを拡張していますか? – Jeffwa

+0

'array_merge'と呼ばれる場所にコードを表示してください。本当に別の質問であるべきです。 – Jeffwa

+0

はい!私のクラスはlaravelの 'Tests \ TestCase'を拡張します – yvesdaxmaz

答えて

2

代わりに私のテストで使用されている

PHP unit Error

私は見つけられません。テストはLaravel 5.4で変更されました。を参照してください詳細についてはを参照してください。

関連する問題