gpt4 book ai didi

php - Symfony 测试和环境

转载 作者:行者123 更新时间:2023-11-28 20:03:54 24 4
gpt4 key购买 nike

我有以下问题:

我有一个仅为开发或测试目的定义的路由,我通过在我的 Controller 中执行以下操作来“保护”它:

public function testAction()
{
$env = $this->container->get('kernel')->getEnvironment();

if ($env !== 'test' || $env !== 'dev')
{
throw $this->createNotFoundException('Oops, page not available in production environment...');
}

...
}

现在这在生产中运行良好,但当我尝试运行我的测试时,它一直触发 404。

当我在测试期间回显 $env 变量时,它说:test

FtestFtestFtest..........(phpunit 的输出)

我试过使用 !=" 但没有成功。

在测试中我做了类似的事情:

$client = static::createClient();
$client->request('GET', '/basecontroller/test');
$this->assertEquals(200, $client->getResponse()->getStatusCode());

当我注释掉 $env 时,检查所有测试是否通过。这可能是什么原因造成的?

最佳答案

if ($env !== 'test' || $env !== 'dev')

应该是

if ($env !== 'test' && $env !== 'dev')

此外,你不需要身份匹配,只需要值匹配,因为你在这里确定你正在比较字符串

此外,您可以通过仅在 routing_dev.ymlrouting_test.yml(或您需要以某种方式“包含”的等效项)中定义此路由来绕过所有这些困惑

关于php - Symfony 测试和环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32759191/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com