我在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; ? 谢谢
答案 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 ';'
最后,感谢您对此问题的任何意见或建议。上帝保佑你们。 :)