lime (software)
Developer(s) | Fabien Potencier |
---|---|
Stable release | |
Written in | PHP |
Operating system | Cross-platform |
Type | Test tool |
License | MIT License |
Website |
www |
lime is a unit testing and functional testing framework built specifically for the Symfony web application framework based on the Test::More Perl library.[2] The framework is designed to have readable output from tests, including color formatting, by following the Test Anything Protocol which also allows for easy integration with other tools.[2] lime tests are run in a sandbox environment to minimize test executions from influencing each other.[2] Though the lime testing framework is built for testing within Symfony, lime is contained within a single PHP file and has no dependency on Symfony or any other library.[1][2]
The alpha version of lime 2.0 was announced on November 10, 2009 [3] and is compatible with Symfony 1.2 and lower.[4] Symfony 2.0 uses PHPUnit for testing instead of lime.[5]
Example
lime unit tests use the lime_test
object to make assertions. The following is a basic example lime unit test to test PHP's built-in in_array
function.
include(dirname(__FILE__) . '/bootstrap/unit.php'); // Include lime.
// Create the lime_test object for 10 number of assertions and color output.
$t = new lime_test(10, new lime_output_color());
// The test array.
$arr = array('Hello', 'World', 123,);
// Output a comment.
$t->diag('in_array()');
// Test to make sure in_array returns a boolean value for both values
// that are in the array and not in the array.
$t->isa_ok(in_array('hey', $arr), 'bool', '\'in_array\' did not return a boolean value.');
$t->isa_ok(in_array('Hello', $arr), 'bool', '\'in_array\' did not return a boolean value.');
$t->isa_ok(in_array(5, $arr), 'bool', '\'in_array\' did not return a boolean value.');
$t->isa_ok(in_array(FALSE, $arr), 'bool', '\'in_array\' did not return a boolean value.');
// Test to make sure in_array can find values that are in the array
// and doesn't find values that are not in the array.
$t->ok(!in_array('hey', $arr), '\'in_array\' found a value not in the array.');
$t->ok(!in_array(5, $arr), '\'in_array\' found a value not in the array.');
$t->ok(!in_array(FALSE, $arr), '\'in_array\' found a value not in the array.');
$t->ok(in_array('Hello', $arr), '\'in_array\' failed to find a value that was in the array.');
$t->ok(in_array('World', $arr), '\'in_array\' failed to find a value that was in the array.');
$t->ok(in_array(123, $arr), '\'in_array\' failed to find a value that was in the array.');
Version 2.0
The alpha version of lime 2.0 was announced on the Symfony blog on November 10, 2009. The second version of lime was built to be as backward compatible with the first version as was possible - the two parts of lime 2.0 that are not compatible with lime 1.0 are the configuration of the test harness and the LimeCoverage
class.[3] lime 2.0 includes support for xUnit output, source code annotations, parallel execution of tests, automatic generation of mock and stub objects, and operator overloading for data within tests.[3] Unlike the first version of lime, lime 2.0 does have some dependencies on Symfony.[5]
See also
References
- 1 2 Symfony Lime Repository
- 1 2 3 4 Potencier, Fabien; Zaninotto, François. The Definitive Guide to symfony, Apress, January 26, 2007, pp. 317-344. ISBN 1-59059-786-9
- 1 2 3 http://symfony.com/blog/lime-2-alpha-released
- ↑ http://blog.naenius.com/2009/08/using-symfonys-lime-in-phpundercontrol/
- 1 2 http://symfonyexperts.com/question/show/id/12
External links
- Symfony project homepage
- Lime Testing Framework
- Lime cheat-sheet
- The Definitive Guide to Symfony - Chapter 15 - Unit and Functional Testing