Тестирование контроллера в Symfony2

Чтобы протестировать контроллер в Symfony2, на хабре посоветовали сделать следующее.

Добавить в файл: app/config/config.yml

services:
    security_test:
        class: Acme\SecurityBundle\Controller\TestController
        calls:
            - [setTemplating, [@templating]]

Добавить в файл: app/config/routing.yml

SecurityTest:
    pattern:  /security/test
    defaults: { _controller: security_test:indexAction }

Добавить в файл: Acme/SecurityBundle/Controller/TestController.php

<?php

namespace Acme\SecurityBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Templating\EngineInterface;
use Symfony\Component\HttpFoundation\Response;

class TestController
{
    /** * @var EngineInterface */
    private $templating;

    /**
     * @param EngineInterface $templating
     */
    public function setTemplating(EngineInterface $templating)
    {
        $this->templating = $templating;
    }

    /**
     * @return \Symfony\Component\HttpFoundation\Response
     */
    public function indexAction()
    {
        $html = $this->templating->render('AcmeSecurityBundle:Default:index.html.twig');
        return (new Response())->setContent($html);
    }

}

Как видите, мы получили TestController.php, который теперь можно тестировать.

Как по мне, то выше описанный способ чрезмерно усложнен и лично я выношу содержимое экшена в отдельный класс, в который пробрасываю serviceContainer, удачки.

Оцени публикацию:
  • 0,0
Оценили человек: 0

Похожие статьи:

Справочники и учебники:


Предложения и пожелания:
Ваше имя:
Ваш E-mail:
Сколько будет Οдин + Τри
Главная
X

youtube.com/watch?v=7hFivbgIEqk

При полном или частичном использовании материалов данного сайта, ссылка на сайт "yapro.ru" обязательна как на источник информации.
Автоматический импорт материалов и информации с сайта запрещен.
Copyrights © 2007 - 2017 YaPro.Ru

Главная » Веб-мастеру » PHP »