php - 如何为 symfony Controller 编写 php 单元测试用例

标签 php symfony

我正在尝试为 symfony Controller 编写一个单元测试用例。

Controller 代码

namespace AppBundle\Controller;

use Symfony\Component\HttpFoundation\Request;

class Controller1 extends SecuredController
{

public function preExecute(Request $request) {
    parent::preExecute($request);
}

public function indexAction()
{
    return $this->render('help/index.html.twig');
}

我尝试编写如下所示的测试用例,但它抛出一个内部错误

namespace Tests\AppBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;

class Controller1Test extends WebTestCase
{
public function testIndex()
 {
   $client = static::createClient();

    $response = $client->getResponse();

    $this->assertEquals(200, $response->getStatusCode());

}
}

任何建议都会对我有帮助

最佳答案

首先,是一个UNIT测试。你在这里不需要客户。您只需要要测试的类(class)即可。

namespace Tests\AppBundle\Controller;

use PHPUnit\Framework\TestCase;
use AppBundle\Controller\Controller1;

class Controller1Test extends TestCase
{
    public function testIndex()
    {
        $this->request = $this->getMockBuilder(
            'Symfony\Component\HttpFoundation\Request'
        )->disableOriginalConstructor()
        ->getMock();

        $controller = new Controller1();
        $controller->preExecute($this->request);
        $response = $controller->indexAction();
        $this->assertEquals(
            200,
            $response->getStatusCode()
        );
    }
}

例如你的代码可以是

namespace Tests\AppBundle\Controller;

use Symfony\Component\HttpFoundation\Response;

class Controller1 extends SecuredController
{
    public function indexAction()
    {
        return new Response();
    }
}

关于php - 如何为 symfony Controller 编写 php 单元测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49510770/

相关文章:

php - 在php中编辑json字符串

php - 我们如何清除 Laravel 中的 Controller 和模型缓存

php - 检测按顺序完成的线程

Symfony:网络服务器上的 Prod 环境生成空白页面

doctrine-orm - 从未导入自定义注释

php - Symfony2 : Doctrine - Update table structure on two different entity managers

php - 学说 2 : Building a nested array tree from a self-refrencing Entity

PHP:数组声明中的变量

php - 如何将完整的安全角色列表/层次结构传递给 Symfony2 中的 FormType 类?

php - Zend 3 + Doctrine 2 创建表格?