首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Symfony2中对安全页面进行功能测试?

如何在Symfony2中对安全页面进行功能测试?
EN

Stack Overflow用户
提问于 2013-05-24 15:05:34
回答 1查看 785关注 0票数 3

设置和信息来重现问题。

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

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

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

代码语言:javascript
复制
<h2 class="username">{{ app.user.username }}</h2>
  1. 我试过了

代码语言:javascript
复制
- [http://symfony.com/doc/master/cookbook/testing/http\_authentication.html](http://symfony.com/doc/master/cookbook/testing/http_authentication.html)

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

代码语言:javascript
复制
$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. 我试过了

代码语言:javascript
复制
- [http://symfony.com/doc/master/cookbook/testing/simulating\_authentication.html](http://symfony.com/doc/master/cookbook/testing/simulating_authentication.html)

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

代码语言:javascript
复制
$this->logIn();

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

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

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

当然,我将logIn函数更改为不同的用户名。

结果是Failed asserting that false is true.

这些都不管用。出什么事了?

我尝试过很多其他的方法,但是

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-24 17:08:12

这个问题的解决办法很简单:

在我的DoctrineFixtures中,我创建了新的用户。但他们的账户没有启用。

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

代码语言:javascript
复制
    $user->setEnabled(true);
    $user->setExpired(false);
    $user->setLocked(false);

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16738114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档