Questo
post fa parte di una serie preparata qualche anno fa per
delle lezioni su PHP.
Adesso consiglierei di usare PHPUnit anziché Lime.
Unit testing
La pratica della predisposizione dei test unitari (unit testing) permette di semplificare le modifiche, semplificare l'integrazione e supportare la documentazione. Buoni motivi per adottarla...Lime
Lime fa parte del framework Symfony, ma può essere utilizzato anche in maniera isolata. Documentazione al riguardo è rintracciabile nelle pagine del progetto (la guida rimane valida per quanto riguarda Lime, anche se la versione Symfony 1.2 è deprecata). Il codice di Lime è disponibile nel deposito SVN di Symfony.Uso di Lime
Un semplice esempio di partenza di unit test con Lime è il seguente:<pre>
<?php
require('../../lib/lime.php');
// impostare il percorso a seconda di dov'è il file
ini_set('error_reporting', E_ALL);
function __autoload($className)
{
$filename=$className.'.class.php';
include($filename);
}
$t=new lime_test(4, new lime_output_color());
$calculator = new Calculator();
$t->cmp_ok($calculator->getOperand(0), '===', false, '->getOperand() returns false for an unitialized value');
$t->isa_ok($calculator->setOperand(0,10), 'Calculator', '->setOperand() returns a Calculator object');
$t->is($calculator->getOperand(0), 10, '->getOperand() returns the correct value for an initialized value');
try
{
$calculator->setOperator('_');
$t->fail('->setOperator() allows a non valid operator');
}
catch (Exception $e)
{
$t->pass('->setOperator() throws an exception with a non valid operator');
}
L'output dovrebbe assomigliare al seguente:
1..4
ok 1 - ->getOperand() returns false for an unitialized value
ok 2 - ->setOperand() returns a Calculator object
ok 3 - ->getOperand() returns the correct value for an initialized value
ok 4 - ->setOperator() throws an exception with a non valid operator
# Looks like everything went fine.
Nessun commento:
Posta un commento