PHPSpec 应该 return 正确的值

PHPSpec should return correct value

我对 phpspec 函数有问题 - shouldReturn。我有一个创建图像对象的工厂,我想测试那个工厂。

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 Exception : it create image object expected [obj:App\ImagesBundle\Entity\Images], but got [obj:AppImagesBundle\Entity\Images].

为什么 PHPSpec 抛出异常而不是 return 绿灯?

规范 class 将永远无法工作,因为您无法存根在规范 class 中实例化的对象。 在您的规范测试中,您必须检查返回的类型和值,如下所示:

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