我在 Codeigniter 中测试 Controller 时遇到困难: 我用 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 );
}
}
最佳答案
正如其他人所提到的,CI 不允许您从另一个 Controller 调用一个 Controller 。简短的原因是 Controller 总是创建响应 header (即使您没有加载任何 View 或调用输出类),并且不允许您向浏览器发送两组 HTTP header 。
编码时Toast ,我试图破解 CI 以允许这样做,但它需要对 Loader 进行一些非常复杂的破解,我得出的结论是你真的不应该在你的 Controller 中放置任何繁重的逻辑。 IMO,为了正确的 MVC 模块化,这些东西属于您的模型、库和助手(它们都可以用 Toast 进行单元测试)。
关于codeigniter - 如何使用 CodeIgniter PART 2 测试 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1147792/