0

我写了这个简单的测试:

<?php
namespace Hello\ApiBundle\Tests\Controller;

use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;

class HelloControllerTest extends WebTestCase {
    public function test() {
        $client = static::createClient();
        $crawler = $client->request("GET","http://localhost/hello");
        $response = $client->getResponse()->getStatusCode();
        var_dump($response);
    }
}
?>

当我运行这个测试时,它会打印一个 404 状态代码。

奇怪的是,我没有在 ngninx 访问日志上看到请求。即使我将 URL 更改为"/hello"它仍然看起来请求没有到达本地网络服务器。

不用说,如果我只是打开 Chrome 并http://localhost/hello正常尝试此 URL ( ),它就可以工作。

  • 我错过了什么?
4

1 回答 1

4

这是因为 Symfony 的测试框架实际上只模拟请求(并直接在后面运行调度程序)。它不会发送真正的请求。

当您测试您的应用程序时,请使用相对路径:

$crawler = $client->request("GET","/hello");
于 2013-10-28T13:56:34.237 回答