使用 PHPSpec 测试父子双向关系

Test parent-child bidirectional relations using PHPSpec

如何使用 phpspec 测试父子双向关系是否正确创建?

class ParentSpec extends ObjectBehavior
{
    function it_adds_a_reference_to_self_while_(Child $child)
    {
        $this->addChild($child);

        $child->setParent($this)->shouldBeCalled();
    }
}

第 7 行抛出一个错误,这是令人讨厌的,因为 $this 是一个 ParentSpec 对象而不是 Parent。但我不知道如何测试 setParent 方法已被调用。

使用getWrappedObject获取底层对象:

$child->setParent($this->getWrappedObject())->shouldBeCalled();

http://www.phpspec.net/en/latest/cookbook/wrapped-objects.html