如何在类中为phpspec测试父调用方法

时间:2014-04-15 11:26:40

标签: php unit-testing phpspec

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

我的课程:

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?
}

这可能吗?

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:3)

这不可能以你描述的方式实现。

测试父母的电话会带来什么好处?你可能想测试父实现的某些行为是否发生,所以直接调用它。

换句话说,如果我改写我的课程而不是打电话给父母,而是实现相同的功能,我认为测试不会失败。