话说,使用phpunit还是处于好奇之心,为什么以前一直没使用呢?主要是嫌麻烦,小项目,前后端都是自己写,几个人就完成的工作,没必要弄的那么麻烦。好了,废话不多说,让我们一起来感受下phpunit吧!
假设,我们有一个项目Demo,Demo是使用Composer做的依赖管理。那么我们只需要以下几步就可完成phpunit的安装和使用:
一、phpunit安装:
1、下载phpunit:wget https://phar.phpunit.de/phpunit.phar
2、修改下载文件的权限:chmod +x phpunit.phar
3、将phpunit设置为全局变量:mv phpunit.phar /usr/local/bin/phpunit
4、查看phpunit版本:phpunit -V
二、项目Demo中引入phpunit组件:
1、打开composer.json文件,添加"require-dev": {"phpunit/phpunit": "5.7.*"},然后composer install (等同于 composer require "phpunit/phpunit:5.7.*")
2、执行完步骤1以后,phpunit组件将会存在于vendor/phpunit/phpunit
3、phpunit的文件目录:
├── phpunit.xml ├── src │ ├── autoload.php │ └── PhpUnitClass.php └── tests └── PhpUnitClassTest.php
4、phpunit.xml 为核心配置文件,暂不介绍,默认即可
5、src中存放真实的服务类,当然一般我们都会把项目的服务类放到其他目录
6、tests存放所有的测试类,所有测试类必须继承PHPUnit\Framework\TestCase;所有测试类命名最好为*Test.php;测试类中的所有方法必须为test*
7、一个简单的phpunit例子:
服务类,PhpUnitClass:
namespace AppService; class PhpUnitClass { private $att; public function __construct($at) { echo "phpunitclass init"; $this->att=$at; } public function say(){ return "say"; } }
单元测试类,PhpUnitClassTest:
class PhpUnitClassTest extends \PHPUnit\Framework\TestCase { public function testPhpUnitClassInit(){ $unit=new \AppService\PhpUnitClass("init"); $this->assertAttributeEquals("init","att",$unit); } public function testPhpUnitClassSay(){ $unit=new \AppService\PhpUnitClass("init"); $this->assertEquals("say",$unit->say()); } }
8、cd进入目录tests,在终端执行:phpunit PhpUnitClassTest 即可执行单元测试
以上,便是一个phpunit简单的入门总结,方便以后查阅。
laravel项目自带phpunit,所有的测试类在根目录tests/ 下存放。