PHPSpec应返回正确的值

时间:2016-01-31 19:32:34

标签: php bdd phpspec

我的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抛出异常会返回绿灯?

1 个答案:

答案 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');
}