为什么需要CIUnit才能将PHPUnit与CodeIgniter一起使用?

时间:2012-07-05 13:45:52

标签: php unit-testing codeigniter phpunit codeigniter-2

我们决定在下一个项目中使用PHPUnit(和Jenkins一起使用)。我们正在考虑不同的PHP框架,其中一个是CodeIgniter。我看到a lot of人使用My CIUNIT"bridge" PHPUnit和Codeigniter。在线文档中几乎没有解释。

为什么需要?

其他框架似乎不需要这样的"cool bridge"

1 个答案:

答案 0 :(得分:10)

原因:

  1. Codeigniter的组件紧密耦合。在使用任何其他部件之前,您需要运行一些大的基本部件(装载器,路由器,CFG对象)。
  2. Codeigniter不适用于从CLI运行。它在index.php前端控制器中有很多引导代码,它假设一个Web服务器环境。
  3. 绝对不需要 CIUNIT来对CI进行单元测试。但你必须做某事。在我的例子中,我为index.php编写了一个替代前端控制器,它只加载了获取CI超级项目所需的最小值。我require_once位于我的测试文件的顶部,$this->CI =& get_instance()位于SetUp()方法中。但是,如果我是一个绝对纯粹的单元测试器,我应该在每次测试后销毁并重新创建CI对象,以防某些状态被困在其中。我不确定CIUNIT是否会为你做这件事。