思路
单元测试testCase一般是放在项目根目录的tests目录下,可以建子目录对应一个模块,每一个test文件对应一个具体功能的单元测试点,然后在项目根目录建个phpunit.xml.dist来编排测试套件,测试时只用在phpunit.xml.dist所在目录运行phpunit命令即可。这里用composer主要用它的autoload。
安装相关环境支持
主要是安装Composer和Phpunit,具体查看相应官方文档即可,这里不细说。
生成项目对应vendor
根目录创建composer.json文件
{
"require": {}
}
然后执行
composer update
根目录下会创建一个vendor目录,这里主要用到vendor/autoload.php
创建phpunit.xml.dist文件
在项目根目录创建phpunit.xml.dist
<phpunit bootstrap="vendor/autoload.php"> <testsuites> <testsuite name="my Test"> <directory>tests</directory> </testsuite> </testsuites> </phpunit> |
创建一个简单测试用例
项目根目录创建tests目录,进入创建StatckTest.php文件,内容如下:
<?php use PHPUnit\Framework\TestCase; class StackTest extends TestCase { public function testPushAndPop() { $stack = []; $this->assertEquals(0, count($stack)); array_push($stack, 'foo'); $this->assertEquals('foo', $stack[count($stack) -1]); $this->assertEquals(1, count($stack)); $this->assertEquals('foo', array_pop($stack)); $this->assertEquals(0, count($stack)); } } |
进行单元测试
在根目录执行:
phpunit
就会看到测试情况:
[rootrl@jdu4e00u53f7 unit]$ phpunit PHPUnit 6.2.4 by Sebastian Bergmann and contributors. . 1 / 1 (100%) Time: 70 ms, Memory: 8.00MB OK (1 test, 5 assertions) |
总结
这里只是简单实例如果跑通一个单元测试的流程,各种细节技巧还需自己去看官方文档,然后通过自己实践学习。
最后贴出我的项目目录以供参考:
unit ├── composer.json ├── phpunit.xml.dist ├── tests │ └── StatckTest.php └── vendor ├── autoload.php └── composer Share |
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。