lime (test framework)

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
lime
Original authorFabien Potencier
DeveloperBernhard Schussek
Initial releaseJanuary 29, 2007; 19 years ago (2007-01-29)
Final release
1.0.9[1] / May 19, 2010; 16 years ago (2010-05-19)
Preview release
2.0.0alpha1 / November 9, 2009; 16 years ago (2009-11-09)
Repository
  • {{URL|example.com|optional display text}}Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
Written inPHP
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    Operating systemCross-platform
    TypeTest tool
    LicenseMIT License
    Websitewww.symfony-project.org

    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

    [edit | edit source]

    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 = ['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

    [edit | edit source]

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

    [edit | edit source]

    Lua error in mw.title.lua at line 392: bad argument #2 to 'title.new' (unrecognized namespace name 'Portal').

    References

    [edit | edit source]
    1. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    2. ^ a b c d Potencier, Fabien; Zaninotto, François. The Definitive Guide to symfony, Apress, January 26, 2007, pp. 317-344. Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    3. ^ a b c Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    5. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    [edit | edit source]