1

我有一个带有父调用方法的类。我想确保已调用父级,以便当我编辑测试方法并删除该行时,它会失败测试

我的课:

public function myMethod($object)
{
    parent::myMethod($object);
    ..
}

我的测试(规格):

/*
 * @param \Example\Entity\MyEntity $myEntity
 */
function it_cat_call_my_method_example($myEntity)
{
    $this->myMethod($myEntity)->shouldParentHaveBeenCalled(); // what to do here?
}

那可能吗?

4

2 回答 2

3

这在您描述的方式中是不可能的。

测试给父母的电话有什么好处?您可能想测试父级实现的某些行为是否发生,因此直接调用它。

换句话说,如果我重写我的类以不调用父类而是实现相同的功能,我认为测试不会失败。

于 2014-04-19T08:21:16.953 回答
3

我不相信这是可能的。PHPSpec 允许您测试您的公共 API(以及对协作者的调用),但与继承无关。

于 2014-04-15T16:42:00.230 回答