PHPUnit 模拟和类型提示方法

Posted

技术标签:

【中文标题】PHPUnit 模拟和类型提示方法【英文标题】:PHPUnit mockery and typehinted methods 【发布时间】:2016-04-21 02:35:28 【问题描述】:

有没有人尝试过带有 php7 方法类型提示的 phpunit?我遇到了一个问题,用错字提示方法模拟类,就像

PHP Fatal error:  Declaration of Mockery_0_Forms_Fields_TextField::getSettings() must be compatible with AbstractField::getSettings(): array in /home/n1ks2n/vagrant/$project-name/vendor/mockery/mockery/library/Mockery/Loader/EvalLoader.php(16) : eval()'d code on line 25

因为我的代码中有 public function getSettings() : string /**code here*/ 这样的方法。认为嘲弄还不知道如何处理这个问题。也许有人有一个解决方案如何告诉模拟类这个方法应该返回偶数类型?

【问题讨论】:

【参考方案1】:

所以我自己找到了解决方案。问题在于嘲弄供应商软件包版本 0.9.4 或更高版本。只需要将composer.json中的“0.9.*”改成“dev-master”即可。这个问题将在下一版本的 mockery pckage 中解决。

【讨论】:

以上是关于PHPUnit 模拟和类型提示方法的主要内容,如果未能解决你的问题,请参考以下文章

PHPUnit 模拟对象类型

PHPUnit 模拟一个抽象类的所有方法

PHPUnit:使用注解返回特定类型真的有必要吗?

PHPUnit 中的模拟与存根

PHPUnit:如何使用多个参数模拟多个方法调用?

在 PHPUnit 中实现给定接口的模拟对象上的未定义方法?