2016-10-28 6 views
0

JobMapper에 대한 테스트를 작성 중이며 받고있는 응답은 다음과 같습니다. ReflectionException: Class config does not exist. 문제를 추적했지만 해결책을 찾지 못했습니다. 그러므로 DB를 칠 수없는,ReflectionException : 클래스 구성이 존재하지 않습니다.

$this->eloquentJobMapper->toEloquent($validJobModel)

제가 DB를 호출하고, 현재 $ 응용 프로그램 인스턴스가 제대로 초기화되지 않습니다

내 가정 때문에이 줄을이었다.

여기에 대한 의견이 있으십니까?

use \Illuminate\Foundation\Testing\TestCase; 
use MNF\MJ\Models\Job; 
use MNF\MJ\Mapper\EloquentJobMapper; 
use MNF\MJ\Repositories\EloquentJobRepository; 
use \Illuminate\Support\Facades\Facade as Facade; 
use \Illuminate\Container\Container as Container; 
use MNF\MJ\Persistence\EloquentJob; 
use \Illuminate\Foundation\Application; 


class JobMapperTest extends TestCase 
{ 
    /** 
    * @var Job 
    */ 
    protected $jobMock; 

    /** 
    * @var EloquentJobRepository 
    */ 
    protected $eloquentJobRepositoryMock; 

    /** 
    * @var EloquentJobMapper $eloquentJobMapper 
    */ 
    protected $eloquentJobMapper; 

    /** 
    * JobMapperTest setUp(). 
    */ 
    public function setUp() 
    { 
     parent::setUp(); 

     $this->jobMock = Mockery::mock('MNF\MJ\Models\Job'); 
     $this->eloquentJobRepositoryMock = Mockery::mock('MNF\MJ\Repositories\EloquentJobRepository'); 
     $this->eloquentJobMapper = new EloquentJobMapper(); 

     $app = new Container(); 
     $app->singleton('app', 'Illuminate\Container\Container'); 
     $app->instance(Job::class, $this->jobMock); 
     Facade::setFacadeApplication($app); 

    } 

    public function tearDown() 
    { 
     parent::tearDown(); 
     Mockery::close(); 
    } 

    /** 
    * Creates the application. 
    * 
    * @return Symfony\Component\HttpKernel\HttpKernelInterface 
    */ 
    public function createApplication() 
    { 
     return new Application(); 
    } 

    //1) giving a valid a Job model, I am getting back an Eloquent Job Model 

    public function testGivingValidMJModelGettingBackEloquentMJModel() 
    { 
     $validJobModel = new Job(); 
     $validJobModel->setJobID(23) 
      /// ..some setters 

     $eloquentJob = $this->eloquentJobMapper->toEloquent($validJobModel); 
     $this->assertInstanceOf(EloquentJob::class, $eloquentJob); 

} 

}

답변

0

내가 잘못 될 수도 있지만 여기에 새로운 컨테이너 개체를 만들 이유가 완전히 이해가 안 :

$app = new Container(); 
$app->singleton('app', 'Illuminate\Container\Container'); 
$app->instance(Job::class, $this->jobMock); 
Facade::setFacadeApplication($app); 

컨테이너가 어떤 설정 클래스가 설정되지 아마 당신이 만드는이 방법 . 이 대신에 다음을 사용해야합니다.

\App::instance(Job::class, $this->jobMock); 

으로 충분해야합니다.

+0

답장을 보내 주셔서 감사합니다. Unfortunartely, 나는 같은 오류가 발생합니다. 이것이 Laravel 4.2 설치라는 사실과 관련이 있습니까? – thitami

+0

Laravel 4.2에 대해 언급하지 않았습니다. 정말 말하기 어렵습니다. 다른 곳에서 config를 사용할 수도 있지만 코드를 표시하지 않았습니다. –

관련 문제