php 单元测试
2013-04-23 19:14 掸尘 阅读(6360) 评论(0) 编辑 收藏 举报前几天把个人上半年计划拿出来看了一下,有学习单元测试的内容,今天没什么事情,就看了一下phpunit!安装phpunit是件很蛋疼事情,尤其在window下面,记得当初费了很大劲才装上,这里就不介绍怎么装的了,你可以去百度一下,首先装上pear,再装phpunit。
装好了phpunit,可以写个例子练习!
require_once 'PHPUnit/Framework/TestCase.php'; /** * test */ class TestAdd extends PHPUnit_Framework_TestCase { /** * */ public function setUp() { parent::setUp(); } public function tearDown() { parent::tearDown(); } public function testTrue() { $this->assertContains('baz', 'foobar'); } public function testFloat() { $this->assertEquals(1.0, 1.2, '相等', 0.2); }
setup 可以在里面初始化一些变量,tearDown 是测试完后,释放setUp里面变量所占的内存! assertEquals 是个很常用的方法!
assertEquals(mixed $expected, mixed $actual[, string $message = '']) 第一个是期望的值,第二是实际的值。你看的我们上面例子,在比较浮点数的时候,
assertEquals(float $expected, float $actual[, string $message = '', float $delta = 0]),有个$delta ,这个参数的意思是我们期望值和实际值的差的最大值,如果小于$delta 则视为通过。其他的判断方式可以到 http://www.phpunit.de/manual/current/en/ 去查找
上面通过命令行输出:
第一个"F"表示失败,第二个"." 表示通过!
集成测试
你一下测试一个项目所有的测试文件,而不是单个测试! 你可以通过 继承 PHPUnit_Framework_TestSuite来实现
require_once 'TestAdd.php'; require_once 'TestArray.php'; /** * test */ class TestSuite extends PHPUnit_Framework_TestSuite { public function __construct() { $this->setName('testSuite'); $this->addTestSuite('TestAdd'); $this->addTestSuite('TestArray'); } public static function suite() { return new self(); } }
这样就可以测试 TestAdd.php和TestArray 文件了! phpunit 里面很多内容,大多数用不到!