微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php单元测试phpunit入门实例教程

本文实例讲述了PHP单元测试PHPunit。分享给大家供大家参考,具体如下:

这篇文章提供了一些PHPunit官方教程没有提到的信息,帮助初学者快速了解PHP单元测试,在PHPunit官网提供了详细的中文教程,可选多种格式下载

PHPunit官网地址:https://phpunit.de/

何为单元测试:

指对软件中的基本单元进行测试,如函数方法等,以检查其返回值或行为是否符合预期;实际中软件是很复杂的,由许多组件构成,执行流程连贯在一起,要进行单元片段的测试,就需要为其提供执行上下文(或者说参数)和环境(比如打桩模拟一些对象)来运行,并监控其行为和返回值,为此我们就需要写出做这件事情的程序代码,这样的代码叫做测试用例,许多测试用例有机结合在一起形成一个整体的测试,又叫做测试套件,被测试的程序代码叫做生产代码PHPunit这个软件就是用来帮助我们写测试用例并进行测试的。

PHP的单元测试:PHPunit

在其官网有详细教程,这里介绍一些补充内容

首先要明白PHPunit软件本身就是由PHP语言实现,其使用是通过命令行进行的,并不是通过浏览器访问

明白这一点很重要,许多新人被卡在这里。很基础也很简单,但似乎没怎么被提及

在官网下载后得到一个phar文件,关于phar归档文件的介绍可参见前面一篇文章

请同时下载phpunit使用文档,按照里面的安装方法进行安装,之后在命令行输入以下命令:

如果显示出了帮助信息即安装成功,在命令行当前目录下建立一个测试用例为yunke.php,内容如下:

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)); } } ?>

然后在命令行输入以下命令:

显示如下内容:

恭喜,你已经成功运行了一个单元测试,第一行是作者信息(Sebastian Bergmann这个家伙很喜欢署名啊)

第二行以一个句点开始,表示所有测试成功通过

你可能会疑惑,上面的php代码是怎么回事呢?

那就是一个测试用例,简单的测试了一个数组操作,进行单元测试一般通过以下四步:

1. 针对生产代码类 Class 的测试写在类 ClassTest中。 2. ClassTest(通常)继承自 @test 标注将其标记为测试方法。 4. 在测试方法内,类似于 assertEquals()这样的断言方法用来对实际值与预期值的匹配做出断言判断。

这里你可能会有几个地方迷惑:

1、在注释块中使用的标注,php可以通过反射得到,程序可以利用得到的信息进行配置 2、上列中测试用例代码里面的TestCase类来自哪里?并没有被加载啊? 上文提到phpunit本身是用php语言写成的,打包成了phar供使用,phar是可执行的,执行时首先执行包里面的存根文件stub

你可以按照上文云客的另外一篇phar帖子介绍的方法提取还原phpunit.phar包,或者使用phpstorm这样的ide直接打开

在.phar/stub.php里你将看到存根代码,TestCase类就是在存根代码里面require的“

可以看出程序并不是从测试用例脚本开始执行的,现在明白TestCase类哪里来的了吧

通过以上内容再配合官网文档,新手应该可以顺利入门了

更多关于PHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》及《

希望本文所述对大家PHP程序设计有所帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐