PHP Unit Fatal error: Call to undefined method PHPUnit_Framework_MockObject_InvocationMocker
PHP Unit Fatal error: Call to undefined method PHPUnit_Framework_MockObject_InvocationMocker
我在 hhvm 上遇到 php 单元的问题,其中 getmock() 在 phpunit 4.8.27 上失败 class 并显示以下消息
Fatal error: Call to undefined method PHPUnit_Framework_MockObject_InvocationMocker::getTableColumns() in /joomla-cms/libraries/joomla/table/table.php on line 241
测试代码失败位于https://github.com/photodude/joomla-cms/blob/patch-1/tests/unit/suites/libraries/cms/installer/JInstallerAdapterTest.php#L111
对于测试代码,此 "fails/errors" 没有致命错误的测试
$mockTableExtension = $this->getMock('JTableExtension', array('find', 'load'), array($this->getMockDatabase()));
但如果我使用存储值
$mockDatabase = $this->getMockDatabase();
并将 mockDatabase
对象类型转换为数组我得到上面列出的致命错误。
$mockTableExtension = $this->getMock('JTableExtension', array('find', 'load'), (array) $mockDatabase);
Travis 测试 mockDatabase
对象和对象类型转换为数组 var_dumped https://travis-ci.org/photodude/joomla-cms/jobs/172201634#L1427-L2178
在 php 中一切都通过并且工作正常,问题是针对 hhvm 测试的
我在模拟设置中做错了什么吗?还是有其他事情发生?
注意:我最近在 php 单元 5.6 上测试了这部分测试服并遇到了同样的问题。所以我不确定在这些测试的设置中我们没有做错什么。
我发现在 hhvm 上的一项测试中 array($this->getMockDatabase())
存在一些问题。将 array($this->getMockDatabase())
替换为 array(self::$driver)
所有问题都已解决。
我还将直接使用 getMock
替换为 getMockBuilder
(为了与 phpunit 5.6 兼容)
我在 hhvm 上遇到 php 单元的问题,其中 getmock() 在 phpunit 4.8.27 上失败 class 并显示以下消息
Fatal error: Call to undefined method PHPUnit_Framework_MockObject_InvocationMocker::getTableColumns() in /joomla-cms/libraries/joomla/table/table.php on line 241
测试代码失败位于https://github.com/photodude/joomla-cms/blob/patch-1/tests/unit/suites/libraries/cms/installer/JInstallerAdapterTest.php#L111 对于测试代码,此 "fails/errors" 没有致命错误的测试
$mockTableExtension = $this->getMock('JTableExtension', array('find', 'load'), array($this->getMockDatabase()));
但如果我使用存储值
$mockDatabase = $this->getMockDatabase();
并将 mockDatabase
对象类型转换为数组我得到上面列出的致命错误。
$mockTableExtension = $this->getMock('JTableExtension', array('find', 'load'), (array) $mockDatabase);
Travis 测试 mockDatabase
对象和对象类型转换为数组 var_dumped https://travis-ci.org/photodude/joomla-cms/jobs/172201634#L1427-L2178
在 php 中一切都通过并且工作正常,问题是针对 hhvm 测试的 我在模拟设置中做错了什么吗?还是有其他事情发生?
注意:我最近在 php 单元 5.6 上测试了这部分测试服并遇到了同样的问题。所以我不确定在这些测试的设置中我们没有做错什么。
我发现在 hhvm 上的一项测试中 array($this->getMockDatabase())
存在一些问题。将 array($this->getMockDatabase())
替换为 array(self::$driver)
所有问题都已解决。
我还将直接使用 getMock
替换为 getMockBuilder
(为了与 phpunit 5.6 兼容)