如果我有
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");
}
}