Authentication 无法在Symfony功能测试中模拟身份验证

Authentication 无法在Symfony功能测试中模拟身份验证,authentication,testing,symfony,functional-testing,Authentication,Testing,Symfony,Functional Testing,我按照食谱中的步骤在功能测试中模拟HTTP身份验证 我在我的配置测试.yml中添加了以下内容: security: firewalls: main: http_basic: realm: "Secured Demo Area" 这就是我的测试结果: class CourseControllerTest extends WebTestCase { public function setUp() {

我按照食谱中的步骤在功能测试中模拟HTTP身份验证

我在我的配置测试.yml中添加了以下内容:

security:
    firewalls:
        main:
            http_basic:
                realm: "Secured Demo Area"
这就是我的测试结果:

class CourseControllerTest extends WebTestCase
{
    public function setUp()
    {
        $this->loadFixtures(array(
            'Herudio\Bundle\UserBundle\DataFixtures\ORM\LoadUserData',
            'Herudio\Bundle\CourseBundle\DataFixtures\ORM\LoadCategoryData',
            'Herudio\Bundle\CourseBundle\DataFixtures\ORM\LoadCourseData',
        ));
    }

    public function testListDisplaysAllEntities()
    {
        $client = static::createClient(array(), array(
            'PHP_AUTH_USER' => 'admin',
            'PHP_AUTH_PW'   => 'admin',
        ));

        $crawler = $client->request('GET', '/courses');

        $this->assertCount(1, $crawler->filter('tbody tr'), 'Unexpected entity count for GET /courses/');
    }
}
但是,当我运行测试时,我会被重定向到/login

我已经确保正确创建了用户实体


注意:我正在使用FOSUserBundle进行身份验证。

我已经为同样使用FOSUserBundle的Symfony应用程序编写了功能测试。我必须模拟浏览器填写登录表单,单击提交并登录,然后在登录后断言预期内容。您是否考虑过这样做?也就是说,您现在所做的可能更值得推荐。@alessandro1997我认为您还应该添加内存中的用户提供程序部分。例如,像这样,我只是忘记了在创建用户时启用它。:)@亚历山德罗德桑蒂斯:你可以回答这个问题并接受答案,这个问题现在似乎是“开放的”。