OrangeHRM 测试指南
io.github.orangehrm/orangehrm/testing
OrangeHRM 测试分层参考——`phpunit.xml` 中声明的按插件 PHPUnit 测试套件、测试数据库生命周期(`instance:create-test-db` 构建含数据的 MySQL 库并由 `CoreFixtureService` 导出、bootstrap 在每个测试时还原)、测试基类(`TestCase` 用于纯单元测试、`KernelTestCase` 用于需要完整框架与 DI 容器的测试、`EntityTestCase` 用于纯实体测试、`EndpointTestCase` 与 `EndpointIntegrationTestCase` 用于带请求 mock 与异常期望的 API 端点测试)、YAML fixture 模式(按插件 `test/fixtures/<DaoName>.yml` + 在 `setUp()` 中调用 `TestDataService::populate($yamlPath)`)、前端单元测试的 Jest 配置(`@vue/cli-plugin-unit-jest/presets/typescript-and-babel`、同级 `__tests__/` 目录),以及用于 E2E 的 Cypress(独立工作区位于 `src/test/functional/`)。当用户编写测试、决定继承哪个基类、调试 fixture 加载、搭建测试数据库、运行单个测试类或试图弄清测试机制时使用。