Skip to content
This repository has been archived by the owner on Nov 26, 2020. It is now read-only.
/ CodeIgniter Public archive
forked from bcit-ci/CodeIgniter

Integration of PHPUnit 3.5.x with CodeIgniter 2.x using a clean way.

License

Notifications You must be signed in to change notification settings

phpfour/CodeIgniter

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Example

<?php

class PostTest extends PHPUnit_Framework_TestCase
{
    private $CI;

    public function setUp()
    {
        $this->CI = &get_instance();
        $this->CI->load->database('testing');
    }

    public function testGetsAllPosts()
    {
        $this->CI->load->model('post');
        $posts = $this->CI->post->getAll();

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

About

Integration of PHPUnit 3.5.x with CodeIgniter 2.x using a clean way.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 99.1%
  • JavaScript 0.9%