3

重现问题的设置和信息

  • Symfony2.2应用
  • LiipFunctionalTestBundle
  • DoctrineFixturesBundle
  • FOSUserBundle

为了测试环境,我使用 LiipFunctionalTestBundle 并(从 DoctrineFixtures)生成一个假 SQLite 数据库。它配置正确 - 我已经能够成功测试我的非安全页面。

我在/secured/test这个视图下创建了一个简单的安全页面:

<h2 class="username">{{ app.user.username }}</h2>
  1. 我试过了

我想用这个断言来测试这个动作:

$client = static::createClient(array(), array(
    'PHP_AUTH_USER' => 'myUserName'
    'PHP_AUTH_PW'   => 'password',
));

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

$count = $crawler
         ->filter('h2.username:contains("myUserName")')
         ->count();

$this->assertTrue($count > 0);

结果是Failed asserting that false is true.

  1. 我试过了

我想用这个断言来测试这个动作:

$this->logIn();

$crawler = $this->client->request('GET', '/secured/test');

$count = $crawler
         ->filter('h2.username:contains("myUserName")')
         ->count();

$this->assertTrue($count > 0);

当然,我将登录功能更改为不同的用户名。

结果是Failed asserting that false is true.

这些都不起作用。怎么了?

我尝试了许多其他方法,但是

4

1 回答 1

2

问题的解决方案非常简单:

在我的 DoctrineFixtures 中,我创建了新用户.. 但他们的帐户未启用。

将此代码添加到夹具解决了问题:

    $user->setEnabled(true);
    $user->setExpired(false);
    $user->setLocked(false);

(因为我的测试试图登录未启用的帐户,对“提交登录表单”的响应被重定向到登录页面)

于 2013-05-24T17:08:12.767 回答