Zend_Test:断言控制器失败

时间:2010-06-24 10:46:14

标签: unit-testing zend-framework testing

我在Zend Framework中使用Zend_Test进行单元测试。我已正确配置了引导程序和测试环境,然后从测试单元

获得了此错误输出
Failed asserting last controller used <"error"> was "index"

当我在动作方法中调用我的DbTable类时会发生此错误,例如

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');
}

这些线有什么问题?

我如何知道真正的错误而不仅仅是失败断言上次使用的控制器&lt;“error”&gt; ? 谢谢

1 个答案:

答案 0 :(得分:0)

最后,它解决了。

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

首先,在 apache / bin 内,第二个在 php 文件夹中。 XAMPP总是使用第一个php.ini用于apache服务器,但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 ';'

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