codifico / phpspec-rest-view-extension
REST View 匹配器
dev-master
2015-10-07 05:51 UTC
Requires
- php: >=5.5
- coduo/php-matcher: ^1.1
- friendsofsymfony/rest-bundle: ~1.5
- jms/serializer: *
- phpspec/phpspec: ~2.0
Requires (Dev)
- behat/behat: ~3.0,>=3.0.4
- phpunit/phpunit: ~4.0.7
- symfony/process: ~2.1
This package is not auto-updated.
Last update: 2024-09-14 18:09:38 UTC
README
基于 FOSRestBundle 视图对象,提供了一种简单的方式来管理对 Rest View 对象的期望。
安装
php composer.phar require codifico/phpspec-rest-view-extension:dev-master --dev
通过在您的 phpspec.yml 中指定其类来激活扩展
# phpspec.yml
extensions:
- Codifico\PhpSpec\RestViewExtension\Extension
使用
spec 文件的使用
# UserControllerSpec.php <?php namespace spec\AppBundle\Controller; use AppBundle\Controller\UserController; use FOS\RestBundle\Util\Codes; use PhpSpec\ObjectBehavior; use Symfony\Component\Security\Core\User\UserInterface; /** * @mixin UserController * * @method beConstructedWith(UserInterface $user) */ class UserControllerSpec extends ObjectBehavior { function let(UserInterface $user) { $this->beConstructedWith($user); } function it_show_the_current_user(UserInterface $user) { $this->getUser()->shouldBeRestViewWith([ 'data' => $user, 'statusCode' => Codes::HTTP_OK, 'serializationGroups' => ['user_profile'], 'headers' => [ 'cache-control' => ['no-cache'], 'date' => ["@string@.isDateTime()"], ] ]); } }
以及相应的控制器文件
# UserController.php <?php namespace AppBundle\Controller; use FOS\RestBundle\Util\Codes; use Symfony\Component\Security\Core\User\UserInterface; use FOS\RestBundle\View\View; use JMS\Serializer\SerializationContext; class UserController { /** * @var UserInterface */ private $user; /** * @param UserInterface $user */ public function __construct(UserInterface $user) { $this->user = $user; } /** * @return \FOS\RestBundle\View\View|null */ public function getUser() { $context = SerializationContext::create(); $context->setGroups('user_profile'); $view = View::create($this->user, Codes::HTTP_OK, []); $view->setSerializationContext($context); return $view; } }
版权
版权(c)2015 Marcin Dryka(drymek)。有关详细信息,请参阅 LICENSE。