小编Mar*_*ark的帖子

在PHPUnit中,在方法中使用type-hint创建接口的Mock对象失败

我创建了以下界面:

<?php
interface Action
{
    public function execute(\requests\Request $request, array $params);
}
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用PHPUnit 3.4创建此接口的Mock对象,但是我收到以下错误:

致命错误:Mock_Action_b389c0b1 :: execute()的声明必须与D:\ Xampp\xampp\php\PEAR\PHPUnit\Framework\TestCase.php(1121)中的Action :: execute()的声明兼容:eval()' d代码在第2行

我查看了从PHPUnit获得的堆栈跟踪,发现它创建了一个实现接口Action的Mock对象,但是以下列方式创建了execute方法:

<?php
public function execute($request, array $params)
Run Code Online (Sandbox Code Playgroud)

如您所见,PHPUnit接管数组类型提示,但忘记了\ requests\Request.这显然会导致错误.有谁知道这个错误的解决方法?

我也尝试过没有命名空间,但我仍然得到同样的错误.

php phpunit interface mocking

18
推荐指数
1
解决办法
4862
查看次数

标签 统计

interface ×1

mocking ×1

php ×1

phpunit ×1