2014-04-15 59 views
0

我有一個父類調用方法的類。我想,以確保父母一直呼籲這樣,當我編輯測試方法,並刪除該行將會失敗測試如何測試父類調用方法在phpspec中的類

我的類:

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

我的測試(SPEC):

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

這可能嗎?

回答

3

這是不可能的你描述的方式。

測試呼叫父母的好處是什麼?你可能想測試一下父母是否實施了一些行爲,所以直接調用它。換句話說,如果我重寫我的類而不是調用父類而是實現相同的功能,我認爲測試不會失敗。

3

我不相信這是可能的。 PHPSpec可以讓你測試你的公共API(以及對協作者的調用),但不能做任何與繼承有關的事情。

+0

您可以對類型進行斷言,這與繼承直接相關。 你應該測試的東西不多,因爲繼承不會影響你的類的外部行爲。 –

相關問題