From 8ede1a2ecbb62577afd32996956c5feaf7ddf9b6 Mon Sep 17 00:00:00 2001 From: Derek Jones Date: Wed, 5 Oct 2011 13:34:52 -0500 Subject: replacing the old HTML user guide with a Sphinx-managed user guide --- user_guide/libraries/unit_testing.html | 226 --------------------------------- 1 file changed, 226 deletions(-) delete mode 100644 user_guide/libraries/unit_testing.html (limited to 'user_guide/libraries/unit_testing.html') diff --git a/user_guide/libraries/unit_testing.html b/user_guide/libraries/unit_testing.html deleted file mode 100644 index 5ebec0cbf..000000000 --- a/user_guide/libraries/unit_testing.html +++ /dev/null @@ -1,226 +0,0 @@ - - - - - -Unit Testing Class : CodeIgniter User Guide - - - - - - - - - - - - - - - - - - - - - -
- - - - - -

CodeIgniter User Guide Version 2.0.3

-
- - - - - - - - - -
- - -
- - - -
- - -

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. -

- - -

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 to the following function:

- -

$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:

- - - - -

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:

- - - -You can customize which of these items get displayed by using $this->unit->set_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.

- - - - - -
- - - - - - - \ No newline at end of file -- cgit v1.2.3-24-g4f1b