我想單元測試我所有的目錄實體方法,並在測試getter getId()時遇到問題。 當我創建目錄(新目錄())時,沒有設置Id並且沒有setId()方法!如何在Symfony2 ORM實體上單元測試getId()方法?
我的第一個愚蠢的一步是寫的MOK:
public function testGetId()
{
$category = $this->getMock('\Dimas\CatalogBundle\Entity\Category');
$category->expects($this->any())
->method('getId')
->will($this->returnValue(352));
$this->assertEquals(352, $category->getId());
}
但是這種虛擬測試不測試我的實體!
測試getId()方法的正確方法是什麼?
你想測試getId()方法麼?如果你在setId方法中有一些困難的邏輯,那麼測試getId方法是有意義的。但是直到它從盒子實現中學到了爲什麼你需要它來測試呢? – Alex
像@亞歷克斯說,爲什麼要麻煩?測試簡單的getter/setter通常是浪費時間。但是如果你真的想用反射http://php.net/manual/en/book.reflection.php來設置這個值,而不需要添加一個setId方法。 – Cerad
是的,除非你在setter或getter中有不尋常的行爲,否則它是沒有意義的(除非它不僅僅是一個映射)。 – Alex