lime is a
unit test
Unit testing, component or module testing, is a form of software testing by which isolated source code is tested to validate expected behavior.
Unit testing describes tests that are run at the unit-level to contrast testing at the integration ...
ing and
functional testing
In software development, functional testing is a form of software testing that verifies whether a system meets its functional requirements.ISO/IEC/IEEE 24765:2017, "Systems and software engineering — Vocabulary", International Organization fo ...
framework built specifically for the
Symfony
Symfony is a free and open-source PHP web application framework and a set of reusable PHP component libraries. It was published as free software on October 18, 2005, and released under the MIT License.
Goal
Symfony aims to speed up the crea ...
web application framework
A web framework (WF) or web application framework (WAF) is a software framework that is designed to support the development of web applications including web services, web resources, and web APIs. Web frameworks provide a standard way to build and ...
based on the
Test::More Perl
Perl is a high-level, general-purpose, interpreted, dynamic programming language. Though Perl is not officially an acronym, there are various backronyms in use, including "Practical Extraction and Reporting Language".
Perl was developed ...
library.
[Potencier, Fabien; Zaninotto, François. ''The Definitive Guide to symfony'', Apress, January 26, 2007, pp. 317-344. ] 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
Symfony is a free and open-source PHP web application framework and a set of reusable PHP component libraries. It was published as free software on October 18, 2005, and released under the MIT License.
Goal
Symfony aims to speed up the crea ...
, lime is contained within a single
PHP
PHP is a general-purpose scripting language geared towards web development. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1993 and released in 1995. The PHP reference implementation is now produced by the PHP Group. ...
file and has no dependency on
Symfony
Symfony is a free and open-source PHP web application framework and a set of reusable PHP component libraries. It was published as free software on October 18, 2005, and released under the MIT License.
Goal
Symfony aims to speed up the crea ...
or any other library.
The alpha version of lime 2.0 was announced on November 10, 2009
and is compatible with
Symfony
Symfony is a free and open-source PHP web application framework and a set of reusable PHP component libraries. It was published as free software on October 18, 2005, and released under the MIT License.
Goal
Symfony aims to speed up the crea ...
1.2 and lower.
Symfony
Symfony is a free and open-source PHP web application framework and a set of reusable PHP component libraries. It was published as free software on October 18, 2005, and released under the MIT License.
Goal
Symfony aims to speed up the crea ...
2.0 uses
PHPUnit for testing instead of lime.
Example
lime
unit test
Unit testing, component or module testing, is a form of software testing by which isolated source code is tested to validate expected behavior.
Unit testing describes tests that are run at the unit-level to contrast testing at the integration ...
s use the
lime_test
object to make
assertions. The following is a basic example lime
unit test
Unit testing, component or module testing, is a form of software testing by which isolated source code is tested to validate expected behavior.
Unit testing describes tests that are run at the unit-level to contrast testing at the integration ...
to test
PHP
PHP is a general-purpose scripting language geared towards web development. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1993 and released in 1995. The PHP reference implementation is now produced by the PHP Group. ...
'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 = 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
In telecommunications and computing, backward compatibility (or backwards compatibility) is a property of an operating system, software, real-world product, or technology that allows for interoperability with an older legacy system, or with inpu ...
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
In computer programming, operator overloading, sometimes termed ''operator ad hoc polymorphism'', is a specific case of polymorphism, where different operators have different implementations depending on their arguments. Operator overloading ...
for data within tests.
Unlike the first version of lime, lime 2.0 does have some dependencies on
Symfony
Symfony is a free and open-source PHP web application framework and a set of reusable PHP component libraries. It was published as free software on October 18, 2005, and released under the MIT License.
Goal
Symfony aims to speed up the crea ...
.
See also
*
Symfony Framework
*
List of unit testing frameworks
References
External links
Symfony project homepage
{{PHP
Unit testing frameworks
PHP frameworks