代码之家  ›  专栏  ›  技术社区  ›  deerawan

Zend\u测试:断言控制器失败

  •  0
  • deerawan  · 技术社区  · 14 年前

    我在Zend框架中使用Zend\u测试进行单元测试。我已经正确地配置了引导和测试环境,然后从测试单元得到了这个错误输出

    Failed asserting last controller used <"error"> was "index"
    

    public function indexAction()
    {
        $roleDb = new Model_DbTable_Role;
        $role = $roleDb->getAll();
        $this->_forward('login');
    }
    

    如果我去掉两行角色,单元测试就成功了。这是我的单元测试代码

    public function testIndexActionShouldRedirectToLoginAction()
    {
        $this->dispatch('/index');
        $this->assertController('index');
        $this->assertAction('login');
    }
    

    我怎么知道真正的错误而不是 ? 谢谢你

    1 回复  |  直到 14 年前
        1
  •  0
  •   deerawan    14 年前

    终于解决了。

    这是因为PDO pgsql没有被php单元检测到。仅供参考,在XAMPP中有两个php.ini文件。

    首先,在里面 阿帕奇/bin 第二个在里面 文件夹。对于apache服务器,XAMPP总是使用第一个php.ini,但是php单元使用第二个。我已经将第一个php.ini配置为使用pgsql,但是忘记了第二个。这就是为什么我的应用程序仍然运行而php单元没有运行的原因。

    然后,在第二个php.ini中为pgsql启用扩展

    extension=php_pdo_mssql.dll
    extension=php_pdo_mysql.dll
    extension=php_pdo_pgsql.dll <= add it
    ;extension=php_pdo_oci.dll
    ;extension=php_pdo_oci8.dll
    ;extension=php_pdo_odbc.dll
    extension=php_pdo_sqlite.dll
    ;extension=php_perl.dll
    extension=php_pgsql.dll <= remove ';'
    

    最后,感谢您对这个问题的任何意见或建议。上帝保佑你们