From 2067d1a727e7eb5e5ffb40e967f3d1fc4c8a41b2 Mon Sep 17 00:00:00 2001 From: Derek Allard Date: Thu, 13 Nov 2008 22:59:24 +0000 Subject: Changing EOL style to LF --- user_guide/libraries/unit_testing.html | 408 ++++++++++++++++----------------- 1 file changed, 204 insertions(+), 204 deletions(-) (limited to 'user_guide/libraries/unit_testing.html') diff --git a/user_guide/libraries/unit_testing.html b/user_guide/libraries/unit_testing.html index 376323272..35bd347fb 100644 --- a/user_guide/libraries/unit_testing.html +++ b/user_guide/libraries/unit_testing.html @@ -1,205 +1,205 @@ - - - - - -Unit Testing Class : CodeIgniter User Guide - - - - - - - - - - - - - - - - - - - - - -
- - - - - -

CodeIgniter User Guide Version 1.7

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

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' );

- -

Where test is the result of the code you wish to test, -expected result is the data type you expect, and test name is an optional name you can give your test. 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) - - - -

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.

- - - - - -
- - - - - - + + + + + +Unit Testing Class : CodeIgniter User Guide + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +

CodeIgniter User Guide Version 1.7

+
+ + + + + + + + + +
+ + +
+ + + +
+ + +

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' );

+ +

Where test is the result of the code you wish to test, +expected result is the data type you expect, and test name is an optional name you can give your test. 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) + + + +

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