如何设置ThinkPHP项目中Mock数据存放的规范目录?

2026-05-03 00:252阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计875个文字,预计阅读时间需要4分钟。

如何设置ThinkPHP项目中Mock数据存放的规范目录?

ThinkPHP 框架本身没有约定测试数据目录,可以使用 phpunit 进行测试,但需要手动加载数据路径。若将 JSON 或 YAML 文件丢失到 tests/fixtures 或 tests/data 目录,框架将无法读取逻辑,导致错误:

推荐统一放在 tests/_data(下划线前缀避免被 PSR-4 扫描到),但必须显式构造路径:

  • __DIR__ . '/_data/user_mock.json' 是安全写法;用 base_path('tests/_data/...') 会报错,因为 base_path() 默认只认 apppublic 等核心目录
  • 别依赖 getcwd(),CI 环境下工作目录可能是 //tmp,路径直接失效
  • 如果用 think-ormMockConnection,SQL 模拟数据建议直接写在测试方法里,而不是从文件读——省去 I/O 开销,也避开路径问题

tests/Featuretests/Unit 下的 Mock 数据要不要分开?

要分,但不是按“功能”或“单元”分,而是按「数据复用粒度」分:共享结构用 tests/_data/shared/,单测独占用 tests/Unit/SomeTest/_data/

阅读全文
标签:PHPThinkPHP

本文共计875个文字,预计阅读时间需要4分钟。

如何设置ThinkPHP项目中Mock数据存放的规范目录?

ThinkPHP 框架本身没有约定测试数据目录,可以使用 phpunit 进行测试,但需要手动加载数据路径。若将 JSON 或 YAML 文件丢失到 tests/fixtures 或 tests/data 目录,框架将无法读取逻辑,导致错误:

推荐统一放在 tests/_data(下划线前缀避免被 PSR-4 扫描到),但必须显式构造路径:

  • __DIR__ . '/_data/user_mock.json' 是安全写法;用 base_path('tests/_data/...') 会报错,因为 base_path() 默认只认 apppublic 等核心目录
  • 别依赖 getcwd(),CI 环境下工作目录可能是 //tmp,路径直接失效
  • 如果用 think-ormMockConnection,SQL 模拟数据建议直接写在测试方法里,而不是从文件读——省去 I/O 开销,也避开路径问题

tests/Featuretests/Unit 下的 Mock 数据要不要分开?

要分,但不是按“功能”或“单元”分,而是按「数据复用粒度」分:共享结构用 tests/_data/shared/,单测独占用 tests/Unit/SomeTest/_data/

阅读全文
标签:PHPThinkPHP