dongtuo1482 2018-10-24 21:43
浏览 14
已采纳

使用RenderController的Symfony PHPUnit WebTestCase

I have implemented this test in my app

public function testHome()
{
    $client = static::createClient();
    $client->request('GET', '/');
    $this->assertEquals(200, $client->getResponse()->getStatusCode());
}

It fails because of a render controller in my twig

{% extends 'base-pages.html.twig' %}

{% block main %}
    <main>
        {{ render(controller('App\\Controller\\AppController::futureEvents')) }}
        {{ include('includes/popular-places.html.twig') }}
        {{ include('includes/news-event.html.twig') }}
        {{ include('includes/call-section.html.twig') }}
    </main>
{% endblock %}

The Controller Rendered:

public function futureEvents()
{
    $events = $this->getDoctrine()->getRepository(Event::class)->findAll();

    return $this->render('includes/events-home-list.html.twig', [
        'events' => $events,
    ]);
}

The error:

There was 1 failure:

1) App\Tests\Controller\HomeControllerTest::testHome Failed asserting that 500 matches expected 200.

/var/www/html/app-web/tests/Controller/HomeControllerTest.php:15

Why does that happen? Is there a way to handle renderController in a Web Test Case?

  • 写回答

1条回答 默认 最新

  • dongri1989 2018-10-25 15:34
    关注

    I have found it. According to this doc: https://symfony.com/doc/current/testing/database.html#changing-database-settings-for-functional-tests

    You have to add a env in the php section in your phpunit.xml.dist.

    <env name="DATABASE_URL" value="mysql://root:root@localhost/app" />
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?