加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

zend-framework – PHPUnit和Zend Framework assertRedirectTo()

发布时间:2020-12-13 21:39:13 所属栏目:PHP教程 来源:网络整理
导读:我在我创建的测试中遇到了assertRedirectTo()的问题,下面是我使用的代码: public function testLoggedInIndexAction() { $this-dispatch('/'); $this-assertController('index'); $this-resetResponse(); $this-request-setPost(array( 'type' = 'login','u
我在我创建的测试中遇到了assertRedirectTo()的问题,下面是我使用的代码:

public function testLoggedInIndexAction() {
  $this->dispatch('/');
  $this->assertController('index');
  $this->resetResponse();
  $this->request->setPost(array(
   'type' => 'login','username' => 'root','password' => 'asdasd',));
  $this->request->setMethod('POST');
  $this->dispatch('/');
  $this->assertRedirectTo('/feed/');
}

您通过/(index.php /)登录并在那里提交帖子详细信息,然后将其重定向到/ feed /(index.php / feed /).我提供的详细信息是正确的,应该可以工作但是我遇到的问题是PHPUnit说它们不正确:

There was 1 failure:

1) IndexControllerTest::testLoggedInIndexAction
Failed asserting response redirects to "/feed/"

/home/public_html/mashhr/library/Zend/Test/PHPUnit/Constraint/Redirect.php:190
/home/public_html/mashhr/library/Zend/Test/PHPUnit/ControllerTestCase.php:701
/home/public_html/mashhr/tests/application/controllers/UserControllerTest.php:36

解决方法

@poelinca:不,这只是Zend_Test在注册重定向时不可靠的情况(即使它被正确调用了!)

在他的情况下,真正的应用程序毫无疑问正确地重定向用户,但Zend_Test环境无法正确注册称为重定向.我能想到的最好的响应是省略任何实际在应用程序中工作的失败的assertRedirect.

这不是最佳情况,但除非您准备深入了解Zend代码以查看问题所在,否则这可能是您提高效率的最佳选择.这是导致单元测试得到错误名称的原因的一个示例:必须更改代码以传递实际已经工作的测试.

请参阅http://framework.zend.com/issues/browse/ZF-7496其标题中具有误导性:该问题与所有重定向有关,尤其是那些必须设置标题并退出而不是调度原始控制器的重定向.

无论出于何种原因,这种行为导致重定向不会总是失败,而是变得非常不可靠!如果有人知道这个问题的更好的解决方法(这是一般的,可能与OP的代码无关),请告诉我们.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读