如何让phpspec评估我的构造函数

时间:2016-01-05 14:10:34

标签: phpspec construct

public function __construct(RequestSchemaInterface $requestSchema)
{
    $this->schema = $requestSchema->getSchema();
}

当我为Builder运行phpspec时,$ this-> schema始终为null。 在正常调用中它设置模式。 我实施了

function let(RequestSchema $requestSchema)
{
    $this->beConstructedWith($requestSchema);
}

如果使用$ this-> schema?

,如何测试该类的方法

1 个答案:

答案 0 :(得分:1)

您的let()方法使用存根来构造被测对象。虽然这是推荐的,但并不是必需的。您可以创建类型为RequestSchema的真实对象,并使用它来构建测试类:

function let()
{
    $requestSchema = new RequestSchema();
    $this->beConstructedWith($requestSchema);
}

<强>更新

关于问题的标题“如何让phpspec评估我的构造函数”:构造函数已执行但是,因为您使用了$requestSchema的存根,所以调用{{1}在构造函数内部返回$requestSchema->getSchema()

您可以prepare the stub在调用方法NULL时返回其他内容。

试试这个:

getSchema()