在 PHPUnit 上创建具有类型提示方法的接口的 Mock 对象失败
我创建了以下界面:
<?php
interface Action
{
public function execute(\requests\Request $request, array $params);
}
然后我尝试用PHPUnit 3.4制作此接口的Mock对象,但我得到以下错误:
致命错误:Mock_Action_b389c0b1::execute() 的声明必须与 D:\Xampp\xampp\php\PEAR\PHPUnit\Framework\TestCase.php(1121) 中的 Action::execute() 的声明兼容:第 2 行上的 eval()'d 代码
我查看了从PHPUnit获得的堆栈跟踪,发现它创建了一个实现接口Action的Mock对象,但按以下方式创建了执行方法:
<?php
public function execute($request, array $params)
如您所见,PHPUnit 接管数组类型提示,但忘记了 \request\Request。这显然会导致错误。有谁知道此错误的解决方法吗?
我也在没有命名空间的情况下尝试过,但我仍然得到同样的错误。