PhpStorm phpUnit自动完成失败,因为设置方法


PhpStorm phpUnit autocomplete broken because of setUp method

让PhpStorm自动完成在phpUnit的setUp方法中定义的字段。

如果我在setUp方法中定义一个mock:

public function setUp()
{
    $this->testRepo = $this->getMockBuilder(TestRepository::class)
        ->disableOriginalConstructor()
        ->getMock();
}

当我想在其他方法中使用这个mock时:

public function testExample()
{
    $this->testRepo->.... at this point phpStorm does not show autocomplete        options
}

我知道phpStorm不知道setUp方法在其他测试方法之前运行,但也许有一种方法可以修复这种行为。

我也不想给每个定义的属性添加phpDoc。我觉得这很健壮,但很难看:

/**
 * @var PHPUnit_Framework_MockObject_MockObject
 */
protected $testRepo;

PS: Stackoverflow编辑器是s**t

修改PHPDoc注释如下:

/**
 * @var 'PHPUnit_Framework_MockObject_MockObject|TestRepository
 */
protected $testRepo;

希望对您有所帮助

相关文章: