如何使用phpspec实现代码自动完成

如何使用phpspec实现代码自动完成,php,phpstorm,phpspec,Php,Phpstorm,Phpspec,我刚刚开始学习phpspec,以期取代PHPUnit。不幸的是,我对使用PHPStorm编辑器的代码完成特性非常着迷,这使得即使是PHPUnit的详细模拟接口也能非常快速地输入 phpspec没有这样的运气。对于这样一个类: <?php namespace spec\MyVendor\MyClass; use PhpSpec\ObjectBehavior; class MyClassSpec extends ObjectBehavior { function it_is_in

我刚刚开始学习phpspec,以期取代PHPUnit。不幸的是,我对使用PHPStorm编辑器的代码完成特性非常着迷,这使得即使是PHPUnit的详细模拟接口也能非常快速地输入

phpspec没有这样的运气。对于这样一个类:

<?php

namespace spec\MyVendor\MyClass;

use PhpSpec\ObjectBehavior;

class MyClassSpec extends ObjectBehavior
{
    function it_is_initializable()
    {
        $this->shouldHaveType('MyVendor\MyClass');
    }

    function it_should_do_something()
    {
        $this->???
    }
}

更新:PhpStorm内置了对PhpSpec的支持。我们只能期待每一个新版本都会有所改进

问题中PhpSpec的PhpStorm插件并没有真正维护,但您可以尝试另一种解决方案。自PhpStorm 7以来,可以使用
@mixin
注释:

<?php

namespace spec\MyVendor;

use MyVendor\MyClass;
use PhpSpec\ObjectBehavior;

/**
 * @mixin MyClass
 */
class MyClassSpec extends ObjectBehavior
{
    function it_is_initializable()
    {
        $this->shouldHaveType('MyVendor\MyClass');
    }

    function it_should_do_something()
    {
        $this->doSomething(':D');
    }
}

这刚刚解决了我的许多问题:)我以前还没有看到
@mixin
注释。非常感谢。谢谢,很好的解决方法。预言也有解决办法吗?像
$this->doSomething(':D')->willReturn('something')