【问题标题】:PHPSpec should return correct valuePHPSpec 应该返回正确的值
【发布时间】:2016-01-31 19:32:34
【问题描述】:

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

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

php 规范:

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

}

PHPSpec 抛出异常:它创建图像对象 预期 [obj:App\ImagesBundle\Entity\Images],但得到了 [obj:AppImagesBundle\Entity\Images]。

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

【问题讨论】:

  • 您的命名空间有问题 - App\ImagesBundleAppImagesBundle 不同

标签: php bdd phpspec


【解决方案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');
}

【讨论】:

    猜你喜欢
    • 2013-10-15
    • 1970-01-01
    • 1970-01-01
    • 2016-02-07
    • 1970-01-01
    • 2018-10-08
    • 1970-01-01
    • 2021-03-12
    • 1970-01-01
    相关资源
    最近更新 更多