2017-12-19 4 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가 IT를 찾을 수있는 방법을 자동으로 완성 할 수 없기 때문에 assertViewHas 방법은 존재하지 않는 것 같다,하지만 난 Laravel 5.5 API에서 검색 할 때 나는에 assertViewHas 방법에서 그 방법을 찾아 TestResponse 클래스의 Illuminate/Foundation/Testing 네임 스페이스 이 문제를 어떻게 해결할 수 있습니까?

또 다른 문제는이 테스트에서 내 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에서 변경되었습니다.를 참조하십시오. 자세한 내용은을 참조하십시오.

관련 문제