Integration of PHPUnit 3.5.x with CodeIgniter 2.x using a clean way.
PHP JavaScript
Pull request Compare This branch is 3 commits ahead, 6485 commits behind bcit-ci:develop.
Latest commit 0db038b Sep 4, 2011 @phpfour Updated README.

PHPUnit integration with CodeIgniter

This is an attempt of integrating PHPUnit with CodeIgniter. This provides a clean way of bootstrapping the framework and then performing tests on the Model layer. The use is very simple as it does not require any change in how a regular CodeIgniter application is built.

How it works

  • The provided PHPUnit bootstrap file sets the CI environment as testing and then loads the framework normally - the code is taken directly from the index.php file.

  • A display_override hook checks if the environment is set to testing or not and when it is, it refrains from outputting the rendered view file

  • The PHPUnit test case file now can get a reference of the CI object using the commonly used &get_instance() method and can load models and other libraries as needed.

  • It is good to have separate database configuration for testing and it might be useful to load the test database with fresh data every time test runs - it can be easily added in the setUp method using the Database Forge classes



class PostTest extends PHPUnit_Framework_TestCase
    private $CI;

    public function setUp()
        $this->CI = &get_instance();

    public function testGetsAllPosts()
        $posts = $this->CI->post->getAll();

        $this->assertEquals(1, count($posts));