Lime (test framework) explained

lime
Author:Fabien Potencier
Developer:Bernhard Schussek
Discontinued:yes
Latest Release Version:1.0.9[1]
Latest Preview Version:2.0.0alpha1
Operating System:Cross-platform
Programming Language:PHP
Genre:Test tool
License:MIT License

lime is a unit testing and functional testing framework built specifically for the Symfony web application framework based on the 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. lime tests are run in a sandbox environment to minimize test executions from influencing each other. 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.

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.[6] 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. 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. Unlike the first version of lime, lime 2.0 does have some dependencies on Symfony.

See also

External links

Notes and References

  1. Web site: /tools/lime/tags/RELEASE_1_0_9 (log) . symfony - Trac . https://web.archive.org/web/20160730133229/http://trac.symfony-project.org/log/tools/lime/tags/RELEASE_1_0_9 . 2016-07-30.
  2. Potencier, Fabien; Zaninotto, François. The Definitive Guide to symfony, Apress, January 26, 2007, pp. 317-344.
  3. Web site: Lime 2 alpha released (Symfony Blog) .
  4. Web site: Using Symfony's Lime in phpUnderControl. https://web.archive.org/web/20180205042332/http://blog.naenius.com/2009/08/using-symfonys-lime-in-phpundercontrol/ . 2018-02-05 .
  5. Web site: Can someone post a full working example of Lime 2 annotations? . https://web.archive.org/web/20130406033356/http://symfonyexperts.com/question/show/id/12 . 2013-04-06.
  6. News: (Press Release) Lime 2 alpha released. SensioLabs. 2017-11-23. en.