我在Codeigniter中测试控制器时遇到了困难: 我使用Toast但是当我调用我的Home Controller类时,我得到一个异常,即“db”没有定义。有谁知道如何测试这个1-1?
由于
class Home_tests extends Toast {
function __construct() {
parent::__construct(__FILE__);
// Load any models, libraries etc. you need here
}
function test_select_user() {
$controller = new Home();
$controller->getDbUser('foo@gmail.com','password');
assert($query->num_rows() == 0 );
}
}
答案 0 :(得分:8)
正如其他人所提到的,CI不允许您从另一个控制器调用控制器。简短的原因是控制器总是创建响应头(即使您没有加载任何视图或调用输出类),也不允许您向浏览器发送两组HTTP头。
在编码Toast时,我试图破解CI以允许这个,但是它需要一些非常毛茸茸的黑客攻击,我得出的结论是你真的不应该在你的控制器中加入任何沉重的逻辑无论如何。 IMO,对于正确的MVC模块化,这些东西属于您的模型,库和帮助程序(可以使用Toast进行单元测试)。
答案 1 :(得分:0)
您可能需要在../ system / application / config / database.php
中编辑数据库连接设置