首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单元测试2时无法传递获取参数

单元测试2时无法传递获取参数
EN

Stack Overflow用户
提问于 2014-06-25 08:44:52
回答 1查看 157关注 0票数 0

我很难尝试单元测试(phpUnit),这是我在ZF2中的一个模块。我要做的是确定当GET参数传递给控制器时,页面上的某个元素是否存在类名。

它都是在浏览器中工作的,但是在尝试单元测试时,我无法获得要识别的get参数。

这是我的单元测试代码:

代码语言:javascript
复制
<?php

namespace ComponentManager\Controller;
use Zend\Test\PHPUnit\Controller\AbstractHttpControllerTestCase;

class ComponentManagerControllerTest extends AbstractHttpControllerTestCase
{
    public function setUp()
    {
        $this->setApplicationConfig(
            include 'config/application.config.php'
        );
        parent::setUp();
    }

    public function testAdminComponentCodeCanBeAccessed()
    {
        $this->dispatch('/ComponentManager/requestComponent/product/details-1/details-1', 'GET', array('admin' => 1));
        // I also tried: $this->dispatch('/ComponentManager/requestComponent/product/details-1/details-1?admin=1');
        $this->assertResponseStatusCode(200);
        $this->assertMatchedRouteName('ComponentManager/path');
        $this->assertControllerName('ComponentManager\Controller\ComponentManager');
        $this->assertControllerClass('ComponentManagerController');
        $this->assertActionName('requestComponent');
        $this->assertModuleName('ComponentManager');

        // test will fail here
        $this->assertQuery('div.config-active-wrapper');
    }
}

当我删除GET中管理参数存在的检查时,"div.config-active-wrapper"选择器工作得很好,但是当我重新添加它时,GET参数根本不被识别。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-25 10:07:57

这里的问题是,单元测试是一个 CLI 操作,在CLI中没有填充超全局。简单而愚蠢:P

解决方案不是在这里使用$_GET这样的超级全局,而是通过一些ACL和一个控制器传递这个"admin“参数。

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

https://stackoverflow.com/questions/24404033

复制
相关文章

相似问题

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