🧪 PHP单元测试 · 代码质量

📘 30章 实战目录
什么是单元测试为什么需要PHPUnit安装
命名规范assert方法运行测试
phpunit.xmlTestSuite过滤器/分组
@dataProviderCSV/JSON测试夹具
setUp/tearDown@before/@after共享夹具
expectException@expectedExceptionPHP错误/警告
什么是Mock创建Mockexpects/method/with
部分MockMock静态方法Mock Trait/final
Stub vs Mock创建StubFake对象
反射间接测试何时测试私有
PHPUnit DB扩展DataSet/DataTable测试数据库操作
Guzzle模拟HTTP响应状态码/JSON集成测试/E2E
Laravel测试基础HTTP测试Dusk浏览器测试
WebTestCase客户端模拟Doctrine ORM测试
Xdebug/PCOV覆盖率报告解读数据
红-绿-重构需求到用例TDD实战
Behat/PHPSpecFeature/ScenarioBDD vs TDD
GitHub ActionsJenkins/GitLab CI自动化策略
单元/集成/E2E选择策略反模式
PHPStanPsalm/PhanCI集成
PSR标准PHP-CS-FixerPHP_CodeSniffer
圈复杂度NPathPHPMD/重构
识别遗留代码安全重构Characterization测试
依赖注入工厂/策略观察者模式
脆弱/慢速测试不稳定测试过度Mock
PHPBench性能瓶颈优化执行速度
OWASP Top 10SQL注入/XSSCSRF/安全扩展
测试日志输出MonologPHPStorm调试器
生成文档报告分享Code Review/文化
从零搭建PHP项目测试套件设计CI/CD质量门禁