如何传递参数来构建phpspec?

如果我有

function let(Foo bar)
{
    $this->beConstructedWith($bar);
}

它工作得很好,但我如何实际将参数传递给构造?它只有在我没有传递参数的构造时才有效,并且在构造之后使用setter.有没有正常建设的方法?

我试过这个,但是所有的例子都使用没有参数的构造.谢谢.

最佳答案 你已经通过使用$this-> beConstrutedWith($bar)向你的构造函数传递了一个争论

使用SUT中的方法运行的第一个示例将导致使用$bar调用类的构造函数:

class Baz 
{
   public function __construct(Foo $bar)
   {
   }
}

这是关于let()的最新文档
http://phpspec.readthedocs.org/en/latest/cookbook/construction.html#using-the-constructor

namespace spec;

use PhpSpec\ObjectBehavior;
use Markdown\Writer;

class MarkdownSpec extends ObjectBehavior
{
    function it_outputs_converted_text(Writer $writer)
    {
        $this->beConstructedWith($writer);
        $writer->writeText("<p>Hi, there</p>")->shouldBeCalled();

        $this->outputHtml("Hi, there");
    }
}
点赞