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


啥?你是程序员没写过单元测试?呃,好吧。小马这次也是需要支持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

未经许可请勿转载。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 什么,你是程序员?什么你从来没写过单元测试用例?嗯,不要惊讶,这在国内正常的啦。有的觉得写这个玩意太耗时间了,有的...
    小马过河R阅读 4,375评论 0 3
  • 文档入口 概念 安装phpunitphar安装composer安装phpunit-skelgen 使用NetBea...
    思考的山羊阅读 3,828评论 0 1
  • 一、安装phpunit ➜ wget https://phar.phpunit.de/phpunit.phar /...
    PengFuChuan阅读 10,111评论 0 2
  • Packagist仓库位置: 官方文档地址: 安装方式: phar包 Composer方式 以下采用Compose...
    MORESIR阅读 4,392评论 1 0
  • 一、概述 1. 什么是单元测试? 【百度百科】单元测试是对软件中的最小可测单元进行检查和验证。 是开发者编写的一小...
    人在码途阅读 10,090评论 0 7

友情链接更多精彩内容