pear install phpunitPHPUnit_Framework_TestCase:
class CalculatorTest extends PHPUnit_Framework_TestCase
class Calculator
{
public function sum ($a, $b)
{
if( ( is_int($a) and is_int($b) ) or
( is_float($a) and is_float($b) ) )
{
return $a + $b;
}
else
{
return false;
}
}
}
class CalculatorTest extends PHPUnit_Framework_TestCase
{
public function __construct ($name)
{
parent::__construct($name);
}
function testSum ()
{
$calculator = new Calculator();
$this->assertTrue( $calculator->sum(5, 5) == 10 ) ;
$this->assertTrue( $calculator->sum("5", 5) == false );
$this->assertTrue( $calculator->sum("moi", "t") == false );
$this->assertTrue( $calculator->sum(5.5, 5.5) == 11.0 )
$this->assertTrue( $calculator->sum(5.5, 5) == 11.5 );
}
}
$suite = new PHPUnit_Framework_TestSuite();
$suite->addTest(new CalculatorTest('testSum'));
PHPUnit_TextUI_TestRunner::run($suite)
$suite = new PHPUnit_Framework_TestSuite("CalculatorTest");
PHPUnit_TextUI_TestRunner::run($suite)
> phpunit CalculatorTest.php
class Calculator { ... }
if(realpath($_SERVER['PHP_SELF']) == __FILE__)
{
require_once("PHPUnit/Framework/TestSuite.php");
require_once("PHPUnit/TextUI/TestRunner.php");
class CalculatorTest extends PHPUnit_Framework_TestCase
{
...
}
$suite = new PHPUnit_Framework_TestSuite();
$suite->addTest(new CalculatorTest('testSum'));
PHPUnit_TextUI_TestRunner::run($suite);
}
Whole example: calculator.php
$suite = new PHPUnit_Framework_TestSuite();
$suite->addTestSuite('CalculatorTest');
$suite->addTestSuite('directory/OtherTest');
PHPUnit_TextUI_TestRunner::run($suite);
phpunit CalculatorTest.php
function testSum ()
{
$calculator = new Calculator();
$this->assertTrue( $calculator->sum(5,5) == 10,
"sum(5,5) != 10" );
$this->assertTrue( $calculator->sum("5",5) == false,
"sum(\"5\", 5) != false" );
}
assertTrue method expects true value on
success.assertEquals(..)assertNotNull(..)assertNull(..)assertSame(..)assertFalse(..)assertRegExp(..)setUp() and tearDown()
methodssetUp() is called before the tests and tearDown() after the tests