codeigniter - 如何使用 CodeIgniter PART 2 测试 Controller ?

标签 codeigniter controller testing

我在 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/

相关文章:

php - 如何使用 codeigniter 插入数据库而不使用单引号?

PHP第一次将字符串写入新行而不是文件末尾

php - 如何在 codeigniter 中显示特定字段的表单验证消息

performance - 移动应用的 KPI

angularjs - Protractor 可以做慢速运行吗?

javascript - 如何在新选项卡中打开时重命名服务器上保存的pdf

json - Spring 中的非必需 JSON 属性(Jackson 映射)

快速,嵌入带有导航 Controller 的 ui View Controller 以允许后退按钮

java - 为什么我无法使用 Controller 传递值并在场景中显示?

javascript - Mocha 测试.Timeout 2000ms