码农庄园

单元测试PHPUnit初体验之安装与示例

2020-07-14  本文已影响0人  小马过河R


啥?你是程序员没写过单元测试?呃,好吧。小马这次也是需要支持CI/CD才刚开始强制自我实行。

啥是PHPUnit

PHP单元测试的框架有很多,比较主流的也就PHPunit。

PHPUnit是一个轻量级的PHP测试框架。它是在PHP5下面对JUnit3系列版本的完整移植,是xUnit测试框架家族的一员(它们都基于模式先锋Kent Beck的设计)。

单元测试是几个现代敏捷开发方法的基础,使得PHPUnit成为许多大型PHP项目的关键工具。这个工具也可以被Xdebug扩展用来生成代码覆盖率报告 ,并且可以与phing集成来自动测试,最后它还可以和Selenium整合来完成大型的自动化集成测试。

安装

PHPUnit有两种安装方式,两种比较简单的方式是:php档案包(phar)和composer。整体上说,在 Windows 下安装 PHAR 和手工在 Windows 下安装 Composer 是一样的过程。我们以composer安装为例。

如果用 Composer 来管理项目的依赖关系,只要在项目的 composer.json 文件中简单地加上对 phpunit/phpunit 的依赖关系即可:

然后我们去执行安装命令composer update,注意一下,我们这里采用的是非系统级的安装,也就是局部安装非全局安装(关于 composer全局安装和局部安装phpunit),笔者认为两者区别就是需不需要在安装目录bin下去执行phpunit命令。其实要支持全局也比较简单,把bin目录登记到PATH环境变量让命令可以找到其对应的可执行文件即可支持啦。

经过一杯咖啡的时间,PHPunit安装完了。你也可以phpunit --version测试是否安装成功。

安装完了之后,我们观察一下目录,红色部分为新增的文件。

我们再观察,composer安装方式并没有出现phpunit.phar文件。很多情况下php  phpunit.phar 命令可用phpunit命令代替,这个后面再讲。

例子

我们要使用PHPunit支持,那就要对IDE软件作对应的配置,这里先不作IDE支持的介绍,大致参考如下;

这里配置其实是有缺陷的支持不了直接run文件

我们先不搅合IDE支持,直接上例子

1、新建文件夹Testcase,编写SayHello.php:

2、新建测试用例SayHelloTest.php:

3、最后切换到bin目录,执行我们的测试文件,得到成功的断言结果(可以通俗理解为,继承单元测试框架,实例化需要测试的类并放入框架,使用框架中的断言等测试方法来实现单元测试):

这里虽然是用IDE但其实还是cmd命名执行

我们看到,参考文章中说:

编写完成后,切换到phpunit.phar所在目录命令行执行:php phpunit.phar Testcase/SayHelloTest.php

但其实我们上面说过,我们并没有phpunit.phar这个文件。找到可执行文件执行vendor/bin/phpunit  ../../Testcase/SayHelloTest.php 或者是phpunit.phar命令则在phpunit.phar 所在目录执行php phpunit.phar Testcase/SayHelloTest.php ,然后运行当前的测试文件即可。所以总结一下,只要找到可执行文件,找到需要执行的测试文件目录即可。也就是如果是全局安装,只需要在项目的文件下直接执行 php phpunit.phar 或phpunit即可。

那么既然我们都用上了IDE了并且做了配置了,怎么在IDE直接RUN class文件而不需要cmd下执行命令呢?上面的IDE配置是否有缺陷呢?这个后面后续再讨论。

关于phpunit的安装和简单例子入门就到这里,更多请参看文档。当然要做unit test 并不是只要工具支持就可以了,对代码的可测性也是有要求的,否则写起用例将痛苦不堪,这点后续篇幅再来讨论。

资料:

中文教程文档

IDE配置1

IDE配置2

未经许可请勿转载。

上一篇下一篇

猜你喜欢

热点阅读