# tools **Repository Path**: yicmf/tools ## Basic Information - **Project Name**: tools - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-07-25 - **Last Updated**: 2026-09-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # tools ThinkPHP 通用工具扩展包(HTTP / 支付 / 上传 / 缓存锁 / 加密 / 第三方服务封装)。 ## 单元测试约定 包内所有单元测试**统一使用 PHPUnit**,用例类放在 `tests/` 目录(`*Test.php`,命名空间 `yicmf\tools\tests`,统一继承 `yicmf\tools\tests\TestCase` 基类)。 运行方式(用带 bcmath / openssl / mbstring 等扩展的 PHP,如项目的 `D:\phpEnv\php\php-8.3\php.exe`): ```bash # 项目根目录执行 php vendor/bin/phpunit -c vendor/yicmf/tools/phpunit.xml # 仅跑依赖外网的真实请求用例(默认排除) php vendor/bin/phpunit -c vendor/yicmf/tools/phpunit.xml --group network ``` 说明: - `tests/bootstrap.php` 负责引导:优先加载宿主项目 composer autoload,并在 PHPUnit 安装错误处理器之前完成 think 框架初始化(`FlowSn` / `RedisLock` / `UploadService` 等依赖框架的用例通过 `requireFramework()` 引导,失败时自动跳过)。 - 基类 `TestCase` 提供 protected 成员反射访问(`invokeProtected` / `getProtected` / `setProtected`)、`assertThrows()` 异常断言与框架引导。 - 依赖外网真实请求的用例标注 `@group network`,默认在 phpunit.xml 中排除。 - 依赖特定扩展(bcmath / openssl / mbstring)或外部服务的用例在 `setUp()` 中检测并 `markTestSkipped()`。 - 不再新增脚本式断言测试(自写 assert + exit code),一律走 PHPUnit。