Toggle navigation
PHPUnit
5.0 (alpha)
4.8 (beta)
4.7 (
stable
)
English
Japanese
Brazilian Portuguese
Simplified Chinese
1. 安装 PHPUnit
需求
PHP 档案包 (PHAR)
Windows
校验 PHPUnit PHAR 发行包
Composer
可选的组件包
2. 编写 PHPUnit 测试
测试的依赖关系
数据供给器
对异常进行测试
对 PHP 错误进行测试
对输出进行测试
错误相关信息的输出
边缘情况
3. 命令行测试执行器
命令行选项
4. 基境(fixture)
setUp() 多 tearDown() 少
变体
基境共享
全局状态
5. 组织测试
用文件系统来编排测试套件
用 XML 配置来编排测试套件
6. 有风险的测试
无用测试
意外的代码覆盖
测试执行期间产生的输出
测试执行时长的超时限制
全局状态篡改
7. 未完成的测试与跳过的测试
未完成的测试
跳过测试
用 @requires 来跳过测试
8. 数据库测试
数据库测试所支持的供应商
数据库测试的难点
数据库测试的四个阶段
1. 清理数据库
2. 建立基境
3–5. 运行测试、验证结果、并拆除基境
PHPUnit 数据库测试用例的配置
实现 getConnection()
实现 getDataSet()
数据库构架(DDL)怎么办?
小建议:使用你自己的抽象数据库 TestCase 类
理解 DataSet(数据集)和 DataTable(数据表)
可用的各种实现
当心外键
实现自有的 DataSet/DataTable
数据库连接 API
数据库断言 API
对表中数据行的数量作出断言
对表的状态作出断言
对查询的结果作出断言
对多个表的状态作出断言
常见问题(FAQ)
PHPUnit 会为每个测试(重新)创建数据库吗?
为了让数据库扩展模块正常工作,需要在应用程序中使用 PDO 吗?
如果看到
“
Too much Connections
”
错误该怎么办?
Flat XML / CSV 数据集中如何处理 NULL?
9. 测试替身
桩件(Stub)
仿件对象(Mock Object)
Prophecy
对特质(Trait)与抽象类进行模仿
对 Web 服务(Web Services)进行上桩或模仿<
对文件系统进行模仿
10. 测试实践
在开发过程中
在调试过程中
11. 代码覆盖率分析
用于代码覆盖率的软件衡量标准
包含与排除文件
略过代码块
指明要覆盖的方法
边缘情况
12. 测试的其他用途
敏捷文档
跨团队测试
13. PHPUnit 与 Selenium
Selenium Server
安装
PHPUnit_Extensions_Selenium2TestCase
PHPUnit_Extensions_SeleniumTestCase
14. 日志记录
测试结果 (XML)
测试结果 (TAP)
测试结果 (JSON)
代码覆盖率 (XML)
代码覆盖率 (TEXT)
15. 扩展 PHPUnit
从 PHPUnit_Framework_TestCase 派生子类
编写自定义断言
实现 PHPUnit_Framework_TestListener
从 PHPUnit_Extensions_TestDecorator 派生子类
实现 PHPUnit_Framework_Test
A. 断言
assertArrayHasKey()
assertArraySubset()
assertClassHasAttribute()
assertClassHasStaticAttribute()
assertContains()
assertContainsOnly()
assertContainsOnlyInstancesOf()
assertCount()
assertEmpty()
assertEqualXMLStructure()
assertEquals()
assertFalse()
assertFileEquals()
assertFileExists()
assertGreaterThan()
assertGreaterThanOrEqual()
assertInstanceOf()
assertInternalType()
assertJsonFileEqualsJsonFile()
assertJsonStringEqualsJsonFile()
assertJsonStringEqualsJsonString()
assertLessThan()
assertLessThanOrEqual()
assertNull()
assertObjectHasAttribute()
assertRegExp()
assertStringMatchesFormat()
assertStringMatchesFormatFile()
assertSame()
assertStringEndsWith()
assertStringEqualsFile()
assertStringStartsWith()
assertThat()
assertTrue()
assertXmlFileEqualsXmlFile()
assertXmlStringEqualsXmlFile()
assertXmlStringEqualsXmlString()
B. 标注
@author
@after
@afterClass
@backupGlobals
@backupStaticAttributes
@before
@beforeClass
@codeCoverageIgnore*
@covers
@coversDefaultClass
@coversNothing
@dataProvider
@depends
@expectedException
@expectedExceptionCode
@expectedExceptionMessage
@expectedExceptionMessageRegExp
@group
@large
@medium
@preserveGlobalState
@requires
@runTestsInSeparateProcesses
@runInSeparateProcess
@small
@test
@testdox
@ticket
@uses
C. XML 配置文件
PHPUnit
测试套件
分组
为代码覆盖率包含或排除文件
Logging (日志记录)
测试监听器
设定 PHP INI 设置、常量、全局变量
为 Selenium RC 配置浏览器
D. 升级
从 PHPUnit 3.7 升级到 PHPUnit 4.0
E. 索引
F. 参考书目
G. 版权