【问题标题】:PHPUnit & Symfony: Mock Kernel ErrorPHPUnit & Symfony:模拟内核错误
【发布时间】:2017-05-05 08:08:09
【问题描述】:

我正在尝试测试将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 in ...

任何想法为什么?

【问题讨论】:

    标签: php symfony unit-testing phpunit


    【解决方案1】:

    仔细阅读错误信息。 WebTestCase::$kernel 是一个静态变量,这意味着你不能用$this 访问它。尝试将其作为实例变量覆盖会导致此错误。

    此外,WebTestCase 类并不是用来模拟内核的单元测试的基类。这是一个便于编写功能测试的类,这就是为什么将真正的内核注入到这个静态变量中的原因。如果您想编写单元测试并模拟内核,请使用 PHPUnit 中常用的 TestCase 类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-09
      • 2015-01-14
      • 2015-03-23
      • 2018-02-04
      • 1970-01-01
      • 2013-03-10
      • 2017-02-04
      相关资源
      最近更新 更多