相信单元测试对于大多数PHP程序员来说还都处于听说过的阶段,似乎PHP就是为了开发速度快而生的,做了单元测试岂不是会拖慢开发速度?这个说法好像也是有道理的,但是还是要针对项目特点,有些对稳定性,健壮性要求的项目,做单元测试可以大幅减少bug的产生率,提高后期维护性,所以想做一个优秀靠谱的PHP 程序员会做单元测试是必不可少的。
在PHP界用 phpunit 做单元测试几乎是标配,今天就来学习安装和使用 phpunit。
首先如果你已经安装了 composer
, 可以将 PHPunit安装到全局,以便后期多个项目可以公用。
执行命令:
composer global require phpunit/phpunit
安装完后在你的项目根目录下创建tests
目录用来存放测试代码,例如我们在 tests
目录下创建一个测试文件 StackTest.php
:
use PHPUnit\Framework\TestCase;
class StackTest extends TestCase {
public function testPushAndPop() {
$stack = [];
$this->assertEquals(0, count($stack));
array_push($stack, 'foo');
$this->assertEquals(1, count($stack));
$this->assertEquals('foo', array_pop($stack));
$this->assertEquals(0, count($stack));
}
}
(注意测试文件的命名StackTest.php
跟类名对应)
这个测试用来测试 array_push
, array_pop
等函数。
为了能自动能找到 PHPUnit\Framework\TestCase
类,在你的项目目录下还需要引入一次phpunit,执行
composer require --dev phpunit/phpunit
创建 phpunit.xml放在你的项目根目录, 这个文件是 phpunit 会默认读取的一个配置文件:
<phpunit bootstrap="vendor/autoload.php">
<testsuites>
<testsuite name="service">
<directory>tests</directory>
</testsuite>
</testsuites>
</phpunit>
首先 bootstarp
用来配置启动文件,就是执行测试时首先会加载的一个文件,如果你是用 composer 来组织项目的,写vendor/autoload.php
就好。
安装完后配置 Phpstorm,
这时候可以直接在phpstorm 里运行测试了。
转载请注明:大后端 » 通过Composer安装PHPunit并配置Phpstrom