SuperAPI AI 工具集

phpunit-skill

测试与质量

查看项目

更新于 10-15 09:17

技能介绍

PHPUnit Testing Skill 是一个面向 PHP 的 PHPUnit 测试生成技能,用于在编写 PHP 测试时提供可复用的模式与示例。当用户提及“PHPUnit”“TestCase”“assertEquals”等关键词时,可触发该技能。

用途 该技能用于生成 PHPUnit 测试代码,覆盖断言、数据提供器、模拟与测试替身等核心测试能力,帮助在 PHP 项目中编写结构化的单元测试。

主要能力

  1. 基础测试:提供继承 TestCase 的测试类示例,包含 setUp() 初始化、assertEquals 断言、expectException 异常断言以及多重断言。
  2. 数据提供器:通过 @dataProvider 注解与静态提供器方法,为同一测试方法提供多组输入与期望值,示例包含正数、负数、零与混合数值。
  3. 断言:列出常用断言方法,包括 assertEquals、assertSame(严格类型)、assertNotEquals、assertTrue、assertFalse、assertNull、assertNotNull、assertCount、assertContains、assertArrayHasKey、assertInstanceOf、assertStringContainsString、assertMatchesRegularExpression、assertEmpty、assertGreaterThan、assertJsonStringEqualsJsonString。
  4. 模拟(Mocking):使用 createMock 创建模拟对象,通过 expects、method、with、willReturn 设置调用次数、参数匹配与返回值,示例展示 UserRepository 与 EmailService 的模拟。
  5. 生命周期:提供 setUpBeforeClass、setUp、tearDown、tearDownAfterClass 四个钩子的用途说明(分别在所有测试前一次、每个测试前、每个测试后、所有测试后一次执行)。
  6. 反模式对照:以表格形式对比不良做法与推荐做法及原因,例如严格比较应使用 assertSame 而非 assertEquals、使用 @dataProvider 保持 DRY、通过 setUp()/tearDown() 隔离全局状态、使用 @group smoke 运行子集。

使用方式 安装:composer require --dev phpunit/phpunit 运行:./vendor/bin/phpunit 或 ./vendor/bin/phpunit --group smoke 配置:使用 phpunit.xml 定义测试套件(testsuites)与覆盖率(coverage)。

深度模式 技能附带 reference/playbook.md,提供生产级模式,包含以下章节: §1 项目设置:composer.json、带套件与覆盖率配置的 phpunit.xml、项目结构。 §2 测试模式:断言、#[DataProvider]、Generator yields、严格比较。 §3 模拟:带回调的 createMock、Mockery spies、连续返回值。 §4 测试替身:内存假实现、仓储模式、测试辅助工具。 §5 Faker 与夹具:带覆盖的 TestDataFactory、批量生成。 §6 异常测试:详细的异常断言、警告测试。 §7 HTTP 与 API 测试:Symfony WebTestCase、认证、验证、分页。 §8 数据库测试:事务回滚、仓储集成、Doctrine。 §9 CI/CD 集成:带 MySQL/Redis 的 GitHub Actions、覆盖率阈值。 §10 调试表:12 个常见问题及其原因与修复。 §11 最佳实践:14 项生产 PHP 测试清单。

适用场景 适用于 PHP 项目中编写与组织 PHPUnit 单元测试,包括需要数据驱动测试、模拟依赖、测试异常、进行 HTTP/API 与数据库测试,以及将测试集成到 CI/CD 流程的场景。

限制 资料未提供该技能的具体收费、价格、支持平台、效果保证或详细使用步骤;上述内容仅依据所给资料整理,未提及的部分暂未提供。