2016-01-31 46 views
0

我有問題phpspec功能 - shouldReturn。我有工廠創建圖像對象,我想測試該工廠。PHPSpec應該返回正確的值

public function create($imageParams) 
{ 
    $image = new Image; 
    $image->setName($imagesParams['name']); 
    return $image; 
} 

phpspec:

public function it_create_image_object() 
{ 
    $image = new Image; 
    $image->setName('Example Name'); 
    $imageParams = ['name'=>'Example Name']; 
    $this->create($imageParams)->shouldReturn($image); 

} 

PHPSpec拋出異常:它創建期望圖像對象 [OBJ:應用程序\ ImagesBundle \實體\圖片],但得到 [OBJ:AppImagesBundle \實體\圖片]。

爲什麼PHPSpec拋出異常而不是返回綠燈?

+0

某處有問題,你的命名空間 - '應用程序\ ImagesBundle'是不一樣的'AppImagesBundle' –

回答

1

spec類永遠不會工作,因爲您不能存儲在spec'ed類中實例化的對象。 在你的天賦測試,你必須檢查返回的類型和值,就像這樣:

public function it_create_image_object() 
{ 
    $imageParams = ['name'=>'Example Name']; 
    $image = $this->create($imageParams); 

    $image->getName()->shouldReturn('Example Name'); 
    $image->shouldHaveType('App\ImagesBundle\Entity\Images'); 
} 
+0

感謝幫幫我。那正確的答案! – Matrix12