只要你想到输入一些东西到print语句或调试表达式中,就用测试代替它。 --Martin Fowler
本文档整理参考:
phpunit中文手册
http://download.csdn.net/detail/e421083458/4891015
创建数组Fixtures
protected function setUp() { // 创建数组fixture。 $this->fixture = array(); }
protected function setUp() { $this->sharedFixture = new PDO( 'mysql:host=wopr;dbname=test', 'root', '' ); }
使用数据提供者
<?php if (!defined('PHPUnit_MAIN_METHOD')) { define('PHPUnit_MAIN_METHOD', 'AllTests::main'); } require_once 'PHPUnit/Framework.php'; require_once 'PHPUnit/TextUI/TestRunner.php'; require_once 'Framework/AllTests.php'; // ... class AllTests { public static function main() { PHPUnit_TextUI_TestRunner::run(self::suite()); } public static function suite() { $suite = new PHPUnit_Framework_TestSuite('PHPUnit'); $suite->addTest(Framework_AllTests::suite()); // ... return $suite; } } if (PHPUnit_MAIN_METHOD == 'AllTests::main') { AllTests::main(); } ?>
<?php if (!defined('PHPUnit_MAIN_METHOD')) { define('PHPUnit_MAIN_METHOD', 'Framework_AllTests::main'); } require_once 'PHPUnit/Framework.php'; require_once 'PHPUnit/TextUI/TestRunner.php'; require_once 'Framework/AssertTest.php'; // ... class Framework_AllTests { public static function main() { PHPUnit_TextUI_TestRunner::run(self::suite()); } public static function suite() { $suite = new PHPUnit_Framework_TestSuite('PHPUnit Framework'); $suite->addTestSuite('Framework_AssertTest'); // ... return $suite; } } if (PHPUnit_MAIN_METHOD == 'Framework_AllTests::main') { Framework_AllTests::main(); } ?>
<?php /** * PHPunit测试套件 * /tests/Framework/Framework/AssertTest.php * @anthor Chen Wei Han * @copyright 2011-7-6下午02:10:29 * @package phpunit * @todo */ //require_once 'PHPUnit/Framework.php'; class Framework_Framework_AssertTest extends PHPUnit_Framework_TestCase{ public function testNewArrayIsEmpty() { // 创建数组fixture。 $fixture = array(); // 断言数组fixture的尺寸是0。 $this->assertEquals(0, sizeof($fixture)); } public function testArrayContainsAnElement() { // 创建数组fixture。 $fixture = array(); // 向数组fixture增加一个元素。 $fixture[] = 'Element'; //断言数组fixture的尺寸是1。 $this->assertEquals(1, sizeof($fixture)); } } ?>
<?php require_once 'MyTest.php'; class MySuite extends PHPUnit_Framework_TestSuite { public static function suite() { return new MySuite('MyTest'); } protected function setUp() { print "\nMySuite::setUp()"; } protected function tearDown() { print "\nMySuite::tearDown()"; } } ?>
<?php require_once 'PHPUnit/Framework.php'; class SampleTest extends PHPUnit_Framework_TestCase { public function testSomething() { //可选:随便测试什么都可以。 $this->assertTrue(TRUE, 'This should already work.'); // 在这儿停住并将测试标记为未完成。 $this->markTestIncomplete( 'This test has not been implemented yet.' ); } } ?>
<?php require_once 'PHPUnit/Framework.php'; class DatabaseTest extends PHPUnit_Framework_TestCase { protected function setUp() { if (!extension_loaded('mysqli')) { $this->markTestSkipped( 'The MySQLi extension is not available.' ); } } public function testConnection() { // ... } } ?>
<?php require_once 'PHPUnit/Framework.php'; require_once 'ArrayTest.php'; require_once 'SimpleTestListener.php'; // 创建一个包括测试套件,来自类ArrayTest的测试。 $suite = new PHPUnit_Framework_TestSuite('ArrayTest'); // 创建一个测试结果,并附上一个SimpleTestListener对象作为对它的观测者。 $result = new PHPUnit_Framework_TestResult; $result->addListener(new SimpleTestListener); // 运行测试。 $suite->run($result); ?>