summaryrefslogtreecommitdiffstats
path: root/user_guide_src/source/libraries/unit_testing.rst
diff options
context:
space:
mode:
Diffstat (limited to 'user_guide_src/source/libraries/unit_testing.rst')
-rw-r--r--user_guide_src/source/libraries/unit_testing.rst245
1 files changed, 0 insertions, 245 deletions
diff --git a/user_guide_src/source/libraries/unit_testing.rst b/user_guide_src/source/libraries/unit_testing.rst
deleted file mode 100644
index 57934cba3..000000000
--- a/user_guide_src/source/libraries/unit_testing.rst
+++ /dev/null
@@ -1,245 +0,0 @@
-##################
-Unit Testing Class
-##################
-
-Unit testing is an approach to software development in which tests are
-written for each function in your application. If you are not familiar
-with the concept you might do a little googling on the subject.
-
-CodeIgniter's Unit Test class is quite simple, consisting of an
-evaluation function and two result functions. It's not intended to be a
-full-blown test suite but rather a simple mechanism to evaluate your
-code to determine if it is producing the correct data type and result.
-
-.. contents::
- :local:
-
-.. raw:: html
-
- <div class="custom-index container"></div>
-
-******************************
-Using the Unit Testing Library
-******************************
-
-Initializing the Class
-======================
-
-Like most other classes in CodeIgniter, the Unit Test class is
-initialized in your controller using the $this->load->library function::
-
- $this->load->library('unit_test');
-
-Once loaded, the Unit Test object will be available using ``$this->unit``
-
-Running Tests
-=============
-
-Running a test involves supplying a test and an expected result in the
-following way:
-
- $this->unit->run('test', 'expected result', 'test name', 'notes');
-
-Where test is the result of the code you wish to test, expected result
-is the data type you expect, test name is an optional name you can give
-your test, and notes are optional notes. Example::
-
- $test = 1 + 1;
-
- $expected_result = 2;
-
- $test_name = 'Adds one plus one';
-
- $this->unit->run($test, $expected_result, $test_name);
-
-The expected result you supply can either be a literal match, or a data
-type match. Here's an example of a literal::
-
- $this->unit->run('Foo', 'Foo');
-
-Here is an example of a data type match::
-
- $this->unit->run('Foo', 'is_string');
-
-Notice the use of "is_string" in the second parameter? This tells the
-function to evaluate whether your test is producing a string as the
-result. Here is a list of allowed comparison types:
-
-- is_object
-- is_string
-- is_bool
-- is_true
-- is_false
-- is_int
-- is_numeric
-- is_float
-- is_double
-- is_array
-- is_null
-- is_resource
-
-Generating Reports
-==================
-
-You can either display results after each test, or your can run several
-tests and generate a report at the end. To show a report directly simply
-echo or return the run function::
-
- echo $this->unit->run($test, $expected_result);
-
-To run a full report of all tests, use this::
-
- echo $this->unit->report();
-
-The report will be formatted in an HTML table for viewing. If you prefer
-the raw data you can retrieve an array using::
-
- echo $this->unit->result();
-
-Strict Mode
-===========
-
-By default the unit test class evaluates literal matches loosely.
-Consider this example::
-
- $this->unit->run(1, TRUE);
-
-The test is evaluating an integer, but the expected result is a boolean.
-PHP, however, due to it's loose data-typing will evaluate the above code
-as TRUE using a normal equality test::
-
- if (1 == TRUE) echo 'This evaluates as true';
-
-If you prefer, you can put the unit test class in to strict mode, which
-will compare the data type as well as the value::
-
- if (1 === TRUE) echo 'This evaluates as FALSE';
-
-To enable strict mode use this::
-
- $this->unit->use_strict(TRUE);
-
-Enabling/Disabling Unit Testing
-===============================
-
-If you would like to leave some testing in place in your scripts, but
-not have it run unless you need it, you can disable unit testing using::
-
- $this->unit->active(FALSE);
-
-Unit Test Display
-=================
-
-When your unit test results display, the following items show by
-default:
-
-- Test Name (test_name)
-- Test Datatype (test_datatype)
-- Expected Datatype (res_datatype)
-- Result (result)
-- File Name (file)
-- Line Number (line)
-- Any notes you entered for the test (notes)
-
-You can customize which of these items get displayed by using
-$this->unit->set_test_items(). For example, if you only wanted the test name
-and the result displayed:
-
-Customizing displayed tests
----------------------------
-
-::
-
- $this->unit->set_test_items(array('test_name', 'result'));
-
-Creating a Template
--------------------
-
-If you would like your test results formatted differently then the
-default you can set your own template. Here is an example of a simple
-template. Note the required pseudo-variables::
-
- $str = '
- <table border="0" cellpadding="4" cellspacing="1">
- {rows}
- <tr>
- <td>{item}</td>
- <td>{result}</td>
- </tr>
- {/rows}
- </table>';
-
- $this->unit->set_template($str);
-
-.. note:: Your template must be declared **before** running the unit
- test process.
-
-***************
-Class Reference
-***************
-
-.. php:class:: CI_Unit_test
-
- .. php:method:: set_test_items($items)
-
- :param array $items: List of visible test items
- :returns: void
-
- Sets a list of items that should be visible in tests.
- Valid options are:
-
- - test_name
- - test_datatype
- - res_datatype
- - result
- - file
- - line
- - notes
-
- .. php:method:: run($test[, $expected = TRUE[, $test_name = 'undefined'[, $notes = '']]])
-
- :param mixed $test: Test data
- :param mixed $expected: Expected result
- :param string $test_name: Test name
- :param string $notes: Any notes to be attached to the test
- :returns: Test report
- :rtype: string
-
- Runs unit tests.
-
- .. php:method:: report([$result = array()])
-
- :param array $result: Array containing tests results
- :returns: Test report
- :rtype: string
-
- Generates a report about already complete tests.
-
- .. php:method:: use_strict([$state = TRUE])
-
- :param bool $state: Strict state flag
- :rtype: void
-
- Enables/disables strict type comparison in tests.
-
- .. php:method:: active([$state = TRUE])
-
- :param bool $state: Whether to enable testing
- :rtype: void
-
- Enables/disables unit testing.
-
- .. php:method:: result([$results = array()])
-
- :param array $results: Tests results list
- :returns: Array of raw result data
- :rtype: array
-
- Returns raw tests results data.
-
- .. php:method:: set_template($template)
-
- :param string $template: Test result template
- :rtype: void
-
- Sets the template for displaying tests results. \ No newline at end of file