首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP致命错误:调用未定义方法PHPUnit_Framework_MockObject_InvocationMocker

PHP致命错误:调用未定义方法PHPUnit_Framework_MockObject_InvocationMocker
EN

Stack Overflow用户
提问于 2016-11-17 23:04:33
回答 1查看 1K关注 0票数 1

我在hhvm上的php单元中遇到了一个问题,在phpunit 4.8.27上get运动会()失败了,因为有以下消息的类

致命错误:对/joomla-cms/库/joomla/table/table.php中的未定义方法PHPUnit_Framework_MockObject_InvocationMocker::getTableColumns()的在线调用241

测试代码失败位于https://github.com/photodude/joomla-cms/blob/patch-1/tests/unit/suites/libraries/cms/installer/JInstallerAdapterTest.php#L111,用于测试代码--这个“失败/错误”测试没有致命错误。

代码语言:javascript
运行
复制
$mockTableExtension = $this->getMock('JTableExtension', array('find', 'load'), array($this->getMockDatabase()));

但是如果我使用存储的值

代码语言:javascript
运行
复制
$mockDatabase = $this->getMockDatabase();

并将mockDatabase对象强制转换为数组,我将得到上面列出的致命错误。

代码语言:javascript
运行
复制
$mockTableExtension = $this->getMock('JTableExtension', array('find', 'load'), (array) $mockDatabase);

使用mockDatabase对象和对象类型强制转换为数组var_dumped https://travis-ci.org/photodude/joomla-cms/jobs/172201634#L1427-L2178的Travis测试

在php中,一切都通过并正常工作,这个问题是针对hhvm上的测试的--我在模拟设置中做错了什么吗?还是还有别的事发生?

注意:我最近在php单元5.6上测试了这部分测试套装,并得到了同样的问题。所以我不确定我们在这些测试的设置中有什么不对。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-26 19:16:23

我发现在hhvm上的一个测试中,array($this->getMockDatabase())存在一些问题。将array($this->getMockDatabase())替换为array(self::$driver),所有问题都得到了解决。

我还将直接使用getMock替换为getMockBuilder (为了与phpunit 5.6兼容)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40666644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档