【发布时间】:2014-10-17 08:22:44
【问题描述】:
在 PHPUnit 中模拟接口时,PhpStorm 会在将其用作类型提示函数的参数时报错。
示例
interface InterfaceA{
}
class ClassA{
public function foo(InterfaceA $foo){}
}
class PhpStormTest extends PHPUnit_Framework_TestCase
{
public function testFoo(){
$mock = $this->getMock("InterfaceA");
$a = new ClassA();
$a->foo($mock);
}
}
在$a->foo($mock); PhpStorm 下划线$mock 和警告Expected InterfaceA, got PHPUnit_Framework_MockObject_MockObject
图片
我猜这是因为 PHPUnit 创建了一个运行时的模拟,而 PhpStorm 无法知道它实际上是在实现接口。
【问题讨论】:
标签: php unit-testing phpunit phpstorm type-hinting