Я пытаюсь проверить сервис, который принимает Symfony\Component\HttpKernel\Kernel
как зависимость.
Это то, что я делаю, чтобы издеваться над ядром.
$this->kernel = $this->getMock('Symfony\Component\HttpKernel\KernelInterface');
$this->kernel->expects($this->any())
->method('getEnvironment')
->will($this->returnValue('dev'));
Когда я запускаю тест, я получаю следующее сообщение об ошибке.
Неустранимая ошибка: невозможно повторно объявить статическое foo \ foo \ WebTestCase :: $ kernel как нестатическое foo \ foo \ MyTest :: $ kernel в …
Есть идеи почему?
Внимательно прочитайте сообщение об ошибке. WebTestCase::$kernel
является статической переменной, что означает, что вы не можете получить к ней доступ с $this
, Попытка переопределить его как переменную экземпляра вызывает эту ошибку.
Кроме того, WebTestCase
Этот класс не предназначен для использования в качестве базового класса для модульных тестов, в которых вы издеваетесь над ядром. Это класс, который облегчает написание функциональных тестов, поэтому реальное ядро вводится в эту статическую переменную. Если вы хотите написать модульный тест и смоделировать ядро, используйте обычный TestCase
класс из PHPUnit.
Других решений пока нет …