如何使用CodeIgniter PART 2测试控制器?

1 testing controller codeigniter

我在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 );
}
 }
Run Code Online (Sandbox Code Playgroud)

Jen*_*and 8

正如其他人所提到的,CI不允许您从另一个控制器调用控制器.简短的原因是控制器总是创建响应头(即使您没有加载任何视图或调用输出类),并且不允许您向浏览器发送两组HTTP头.

在编写Toast的时候,我试图破解CI以允许这个,但是它需要一些非常毛茸茸的黑客攻击,我得出的结论是你真的不应该在你的控制器中加入任何重要的逻辑.IMO,对于正确的MVC模块化,这些东西属于您的模型,库和帮助程序(可以使用Toast进行单元测试).