下载APP 编程狮,随时随地学编程
返回 首页

PHPUnit5.0中文手册

开始阅读
目录
PHPUnit 手册

1. 安装 PHPUnit

需求
PHP 档案包 (PHAR)
Composer
可选的组件包

2. 编写 PHPUnit 测试

测试的依赖关系
数据供给器
对异常进行测试
对 PHP 错误进行测试
对输出进行测试
错误相关信息的输出

3. 命令行测试执行器

命令行选项

4. 基境(fixture)

setUp() 多 tearDown() 少
变体
基境共享
全局状态

5. 组织测试

用文件系统来编排测试套件
用 XML 配置来编排测试套件

6. 有风险的测试

无用测试
意外的代码覆盖
测试执行期间产生的输出
测试执行时长的超时限制
全局状态篡改

7. 未完成的测试与跳过的测试

未完成的测试
跳过测试
用 @requires 来跳过测试

8. 数据库测试

数据库测试所支持的供应商
数据库测试的难点
数据库测试的四个阶段
PHPUnit 数据库测试用例的配置
理解 DataSet(数据集)和 DataTable(数据表)
数据库连接 API
数据库断言 API
常见问题(FAQ)

9. 测试替身

Stubs (桩件)
仿件对象(Mock Object)
Prophecy
对特质(Trait)与抽象类进行模仿
对 Web 服务(Web Services)进行上桩或模仿
对文件系统进行模仿

10. 测试实践

在开发过程中
在调试过程中

11. 代码覆盖率分析

用于代码覆盖率的软件衡量标准
包含与排除文件
略过代码块
指明要覆盖的方法
边缘情况

12. 测试的其他用途

敏捷文档
跨团队测试

13. Logging (日志记录)

测试结果 (XML)
测试结果 (TAP)
测试结果 (JSON)
代码覆盖率 (XML)
代码覆盖率 (TEXT)

14. 扩展 PHPUnit

从 PHPUnit_Framework_TestCase 派生子类
编写自定义断言
实现 PHPUnit_Framework_TestListener
从 PHPUnit_Extensions_TestDecorator 派生子类
实现 PHPUnit_Framework_Test

A. 断言

assertArrayHasKey()
assertClassHasAttribute()
assertArraySubset()
assertClassHasStaticAttribute()
assertContains()
assertContainsOnly()
assertContainsOnlyInstancesOf()
assertCount()
assertEmpty()
assertEqualXMLStructure()
assertEquals()
assertFalse()
assertFileEquals()
assertFileExists()
assertGreaterThan()
assertGreaterThanOrEqual()
assertInfinite()
assertInstanceOf()
assertInternalType()
assertJsonFileEqualsJsonFile()
assertJsonStringEqualsJsonFile()
assertJsonStringEqualsJsonString()
assertLessThan()
assertLessThanOrEqual()
assertNan()
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. 升级
E. 索引
F. 参考书目
G. 版权

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }