PHPUnit单元测试

概念

所谓「单元」指的就是代码区块,比如一个函数、一个类以及类的方法都是代码区块。单元测试这种软件测试方法就是用来检查指定的一个代码区块是否能够按照预期输出结果,单元测试一般通过编写独立的测试用例来完成。

 

linux安装phpunit应用程序:

$ wget https://phar.phpunit.de/phpunit-7.0.phar $ chmod +x phpunit-7.0.phar $ sudo mv phpunit-7.0.phar /usr/local/bin/phpunit $ phpunit --version PHPUnit x.y.z by Sebastian Bergmann and contributors.

 

Laravel说明及安装

Laravel 植根于测试,实际上,内置使 PHPUnit 对测试提供支持是开箱即用的,并且 phpunit.xml 文件已经为应用设置好了。框架还提供了方便的辅助方法允许你对应用进行优雅的测试。

默认情况下,tests 目录包含了两个子目录:Feature 和 Unit,分别用于功能测试和单元测试,单元测试专注于小的、相互隔离的代码,实际上,大部分单元测试可能都是聚焦于单个方法。功能测试可用于测试较大区块的代码,包括若干组件之前的交互,甚至一个完整的HTTP请求。

Feature 和 Unit 测试目录下都提供了ExampleTest.php 文件,安装完新的 Laravel 应用后,只需在项目根目录下简单运行 phpunit 即可运行测试(如果提示找不到命令,可以通过 cp vendor/bin/phpunit ./ 将命令拷贝过来):

 

本片篇讲Laravel使用

创建 & 运行测试

make:test

// 在 Feature 目录下创建测试类... php artisan make:test UserTest

// 在 Unit 目录下创建测试类... php artisan make:test UserTest --unit

 

运行方法:

./phpunit 目标文件

错误信息

报错代码

错误信息

.

运行过程中一个断言成功时输出

F

运行过程中一个断言失败时输出

E

运行过程中产生一个错误时输出

R

被标记为有风险时输出

S

被跳过时输出

I

被标记为不完整或未实现时输出

w

运行过程中产生一个警告

断言方法

expectOutputString('test');echo 'test'; 对输出进行断言(支持正则)

assertRegExp() 根据正则表达式判断

 

布尔类型

方法名

含义

参数

返回值

assertTrue

断言为真

   

assertFalse

断言为假

   

NULL类型

方法名

含义

参数

返回值

assertNull

断言为NULL

   

assertNotNull

断言非NULL

   

数字类型

方法名

含义

参数

返回值

assertEquals

断言等于

   

assertNotEquals

断言大于

   

assertGreaterThan

断言不等于

   

assertGreaterThanOrEqual

断言大于等于

   

assertLessThan

断言小于

   

assertLessThanOrEqual

断言小于等于

   

字符类型

方法名

含义

参数

返回值

assertEquals

断言等于

   

assertNotEquals

断言不等于

   

assertContains

断言包含

   

assertNotContains

断言不包含

   

assertContainsOnly

断言小于

   

assertLessThanOrEqual

断言只包含

   

assertNotContainsOnly

断言不只包含

   

数组类型

方法名

含义

参数

返回值

assertEquals

断言等于

   

assertNotEquals

断言不等于

   

assertArrayHasKey

断言有键

   

assertArrayNotHasKey

断言没有键

   

assertContains

断言包含

   

assertNotContains

断言不包含

   

assertContainsOnly

断言只包含

   

assertNotContainsOnly

断言不只包含

   

对象类型

方法名

含义

参数

返回值

assertAttributeContains

断言属性包含

   

assertAttributeContainsOnly

断言属性只包含

   

assertAttributeEquals

断言属性等于

   

assertAttributeGreaterThan

断言属性大于

   

assertAttributeGreaterThanOrEqual

断言属性大于等于

   

assertAttributeLessThan

断言属性小于

   

assertAttributeLessThanOrEqual

断言属性小于等于

   

assertAttributeNotContains

断言不包含

   

assertAttributeNotContainsOnly

断言属性不只包含

   

assertAttributeNotEquals

断言属性不等于

   

assertAttributeNotSame

断言属性不相同

   

assertAttributeSame

断言属性相同

   

assertSame

断言类型和值都相同

   

assertNotSame

断言类型或值不相同

   

assertObjectHasAttribute

断言对象有某属性

   

assertObjectNotHasAttribute

断言对象没有某属性

   

class类型

方法名

含义

参数

返回值

assertClassHasAttribute

断言类有某属性

   

assertClassHasStaticAttribute

断言类有某静态属性

   

assertClassNotHasAttribute

断言类没有某属性

   

assertClassNotHasStaticAttribute

断言类没有某静态属性

   

文件相关

方法名

含义

参数

返回值

assertFileEquals

断言文件内容等于

   

assertFileExists

断言文件存在

   

assertFileNotEquals

断言文件内容不等于

   

assertFileNotExists

断言文件不存在

   

XML相关

方法名

含义

参数

返回值

assertXmlFileEqualsXmlFile

断言XML文件内容相等

   

assertXmlFileNotEqualsXmlFile

断言XML文件内容不相等

   

assertXmlStringEqualsXmlFile

断言XML字符串等于XML文件内容

   

assertXmlStringEqualsXmlString

断言XML字符串相等

   

assertXmlStringNotEqualsXmlFile

断言XML字符串不等于XML文件内容

   

assertXmlStringNotEqualsXmlString

断言XML字符串不相等

   

 

 

 

 

注:

PHPUnit 是一个面向程序员的、功能强大的 PHP 单元测试框架,如果你之前没接触过 PHPUnit,可以通过官网及中文文档快速入门。

你可能感兴趣的:(单元测试)