考虑以下测试用例:
class FooTest extends PHPUnit_Framework_TestCase
{
public $foo;
public function setUp()
{
$this->foo = new Foo();
}
public function testBar()
{
$expected = 42;
$actual = $this->foo->bar();
$this->assertEqual($expected, $actual);
}
由于$this->foo
是在setUp
中实例化的,因此 PhpStorm 在后续测试方法中不会将其识别为Foo
的实例。结果,大量的IDE电源丢失(丢失完成查找等)。PhpStorm甚至抱怨bar
不是一种$this->foo
的方法,即使它是
有没有一种有效的方法可以让 PhpStorm 识别 setUp
中定义的实例;就像它们在 __construct
中定义一样?也许我缺少一整套PhpStorm功能?或者只是一个笨拙的工作?
PHPStorm 读取标准 PHPDOC,作为示例,您可以定义为:
class CustomerHelperTest extends PHPUnit_Framework_TestCase{
/**
* @var AcmeDemoBundleServiceCustomerHelper
*/
protected $customerHelper;
protected function setUp()
{
$this->customerHelper = new CustomerHelper(
);
}