我的phpspec功能有问题 - shouldReturn。我有工厂whitch创建图像对象,我想测试该工厂。
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 throw异常:它创建图像对象 预期[obj:App \ ImagesBundle \ Entity \ Images],但得到了 [OBJ:AppImagesBundle \实体\图像]。
为什么PHPSpec抛出异常会返回绿灯?
答案 0 :(得分: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');
}