2016-10-28 11 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); 

コンテナが何Configクラスが設定されていない、おそらくあなたが作るこの方法。これの代わりに、おそらくあなたが使用する必要があります:

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

これで十分です。

+0

お返事ありがとうございます。 Unfortunartely、私は同じエラーが発生しています。これはLaravel 4.2のインストールであるという事実に関連していますか? – thitami

+0

あなたはそれをLaravel 4.2と言及していません。それは本当に難しいです。 configのどこか他の部分を使用する可能性がありますが、コードを表示していない可能性があります –

関連する問題