我有一个带有父调用方法的类。我想确保父调用已经被调用,这样当我编辑测试方法并删除该行时,它将无法测试
我的班级:
public function myMethod($object)
{
parent::myMethod($object);
..
}
我的测试(规范):
/*
* @param ExampleEntityMyEntity $myEntity
*/
function it_cat_call_my_method_example($myEntity)
{
$this->myMethod($myEntity)->shouldParentHaveBeenCalled(); // what to do here?
}
这可能吗?
这在您描述的方式中是不可能的。
测试对家长的呼叫有什么好处?您可能想测试父级实现的某些行为是否发生,所以直接调用它。
换句话说,如果我重写我的类,不调用parent,而是实现相同的功能,我认为测试不应该失败。
我认为这是不可能的。PHPSpec允许您测试公共API(以及对合作者的调用),但与继承无关。