单元测试调用模型的PHP CodeIgniter控制器

单元测试调用模型的PHP CodeIgniter控制器,php,codeigniter,unit-testing,phpunit,Php,Codeigniter,Unit Testing,Phpunit,我正在用PHPUnit测试框架(CITest.php)测试我的CodeIgniter项目。当函数test\u model()直接调用模型以获取用户的详细信息时,它工作得非常好。但是,当我通过控制器调用函数test_controller()执行相同操作时,它不会输出任何内容(当我调试时,模型本身不会被调用)。我甚至通过创建函数test\u post\u data()来验证post数据是否正确传递。我错过什么了吗 我只能找到在线资源来直接测试mdoel或单独测试控制器。但是我找不到任何有用的链接来调

我正在用PHPUnit测试框架(
CITest.php
)测试我的CodeIgniter项目。当函数
test\u model()
直接调用模型以获取用户的详细信息时,它工作得非常好。但是,当我通过控制器调用函数test_controller()执行相同操作时,它不会输出任何内容(当我调试时,模型本身不会被调用)。我甚至通过创建函数
test\u post\u data()
来验证post数据是否正确传递。我错过什么了吗

我只能找到在线资源来直接测试mdoel或单独测试控制器。但是我找不到任何有用的链接来调用触发模型的控制器

CITest.php

class CITest extends PHPUnit_Framework_TestCase
{
  private $CI;
  public function setUp()
  {
    $this->CI = &get_instance();
    $this->CI->load->model('Test_model');
    $this->model = $this->CI->My_model; // load the model
    $this->auth = new Test_controller; // load the controller
  }

  public test_model() {
    $user_id = 6;
    print_r($this->model->getUserData($user_id));
  }

  public test_post_data() {
    $_POST['useR_id'] = 22;
    print_r($this->model->check_post_data());
  }

  public test_controller() {
    $_POST['useR_id'] = 22;
    print_r($this->model->get_user_data());
  }
}
class Test_controller extends CI_Controller {
    public function __construct()
    {
        parent::__construct();
        $this->load->model('Test_model');
    }

    public function check_post_data() {
        return $this->input->post();
    }

    public function get_user_data() {
        $user_id = $this->input->post('user_id');
        return $this->Test_model->getUserData($user_id);
    }
}
class Test_model extends CI_Model {
    public function __construct()
    {
        parent::__construct();
    }

    public function getUserData($user_id) {
        return $this->db->select("*")
                    ->from("users")
                    ->where("user_id", $user_id)
                    ->get()->result_array();
    }
}
Test\u controller.php

class CITest extends PHPUnit_Framework_TestCase
{
  private $CI;
  public function setUp()
  {
    $this->CI = &get_instance();
    $this->CI->load->model('Test_model');
    $this->model = $this->CI->My_model; // load the model
    $this->auth = new Test_controller; // load the controller
  }

  public test_model() {
    $user_id = 6;
    print_r($this->model->getUserData($user_id));
  }

  public test_post_data() {
    $_POST['useR_id'] = 22;
    print_r($this->model->check_post_data());
  }

  public test_controller() {
    $_POST['useR_id'] = 22;
    print_r($this->model->get_user_data());
  }
}
class Test_controller extends CI_Controller {
    public function __construct()
    {
        parent::__construct();
        $this->load->model('Test_model');
    }

    public function check_post_data() {
        return $this->input->post();
    }

    public function get_user_data() {
        $user_id = $this->input->post('user_id');
        return $this->Test_model->getUserData($user_id);
    }
}
class Test_model extends CI_Model {
    public function __construct()
    {
        parent::__construct();
    }

    public function getUserData($user_id) {
        return $this->db->select("*")
                    ->from("users")
                    ->where("user_id", $user_id)
                    ->get()->result_array();
    }
}
Test_model.php

class CITest extends PHPUnit_Framework_TestCase
{
  private $CI;
  public function setUp()
  {
    $this->CI = &get_instance();
    $this->CI->load->model('Test_model');
    $this->model = $this->CI->My_model; // load the model
    $this->auth = new Test_controller; // load the controller
  }

  public test_model() {
    $user_id = 6;
    print_r($this->model->getUserData($user_id));
  }

  public test_post_data() {
    $_POST['useR_id'] = 22;
    print_r($this->model->check_post_data());
  }

  public test_controller() {
    $_POST['useR_id'] = 22;
    print_r($this->model->get_user_data());
  }
}
class Test_controller extends CI_Controller {
    public function __construct()
    {
        parent::__construct();
        $this->load->model('Test_model');
    }

    public function check_post_data() {
        return $this->input->post();
    }

    public function get_user_data() {
        $user_id = $this->input->post('user_id');
        return $this->Test_model->getUserData($user_id);
    }
}
class Test_model extends CI_Model {
    public function __construct()
    {
        parent::__construct();
    }

    public function getUserData($user_id) {
        return $this->db->select("*")
                    ->from("users")
                    ->where("user_id", $user_id)
                    ->get()->result_array();
    }
}

CITest.php中的代码


公共测试控制器(){
$\u POST['useR\u id']=22;
打印($this->model->get_user_data());
}

应该是这样的吗


公共测试控制器(){
$\u POST['useR\u id']=22;
打印($this->auth->get_user_data());
}

CITest.php中的代码


公共测试控制器(){
$\u POST['useR\u id']=22;
打印($this->model->get_user_data());
}

应该是这样的吗


公共测试控制器(){
$\u POST['useR\u id']=22;
打印($this->auth->get_user_data());
}