|
前几天把个人上半年计划拿出来看了一下,有学习单元测试的内容,今天没什么事情,就看了一下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 里面很多内容,大多数用不到! |
|
|