2017-05-05 5 views
0

私は依存関係としてSymfony\Component\HttpKernel\Kernelをとるサービスをテストしようとしています。PHPUnitとSymfony:モックカーネルエラー

これは私がカーネルを模擬するために行うことです。

$this->kernel = $this->getMock('Symfony\Component\HttpKernel\KernelInterface'); 
$this->kernel->expects($this->any()) 
    ->method('getEnvironment') 
    ->will($this->returnValue('dev')); 

私がテストを実行すると、次のようなエラーが発生します。

致命的なエラー:静的のfoo \ fooの\のWebTestCase ::非静的のfoo \ fooのように$カーネルを再宣言することはできません\ MyTestには、::で...

$カーネル任意のアイデアなぜですか?

答えて

2

エラーメッセージを注意深くお読みください。 WebTestCase::$kernelは静的変数です。つまり、$thisでアクセスすることはできません。これをインスタンス変数としてオーバーライドしようとすると、このエラーが発生します。

さらに、WebTestCaseクラスは、カーネルを模擬した単体テストの基本クラスではありません。これは機能テストの作成を容易にするクラスです。そのため、実際のカーネルがこの静的変数に注入されるのです。単体テストを作成してカーネルをモックする場合は、PHPUnitの通常のTestCaseクラスを使用します。

関連する問題