我有一个带有父调用方法的类。我想确保已调用父级,这样当我编辑测试方法并删除该行时,它将失败测试
我的课程:
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?
}
这可能吗?
答案 0 :(得分:3)
我不相信这是可能的。 PHPSpec允许您测试公共API(以及对协作者的调用),但不测试与继承有关的任何内容。
答案 1 :(得分:3)
这不可能以你描述的方式实现。
测试父母的电话会带来什么好处?你可能想测试父实现的某些行为是否发生,所以直接调用它。
换句话说,如果我改写我的课程而不是打电话给父母,而是实现相同的功能,我认为测试不会失败。