bneumann / mock-api-bundle
用于模拟外部API响应的Symfony扩展包
dev-main
2024-08-01 19:47 UTC
Requires
- symfony/config: ^7.1
- symfony/dependency-injection: ^7.1
- symfony/http-client: ^7.1
- symfony/yaml: ^7.1
Requires (Dev)
- phpunit/phpunit: ^11.2
- symfony/filesystem: ^7.1
- symfony/framework-bundle: ^7.1
This package is auto-updated.
Last update: 2024-10-01 20:10:37 UTC
README
Mock API Bundle 是一个为测试目的而设计的 Symfony 扩展包,可以帮助您模拟 API 请求。它允许您使用 YAML 配置文件定义特定请求的模拟响应,从而使编写集成测试变得更加容易,无需依赖于外部服务。这在测试第三方 API 集成或模拟测试中的不同场景时特别有用。
此功能仅在测试中有效,正常 HTTP 客户端行为不受影响。
功能
- 基于 URL 和请求体模拟 HTTP 请求。
- 在 YAML 文件中定义模拟响应。
- 无缝集成到 Symfony 的 HTTP 客户端。
- 服务装饰以确保仅在测试环境中使用。
安装
- 使用 Composer 将扩展包添加到您的 Symfony 项目中
composer require bneumann/mock-api-bundle --dev
- 在您的
config/bundles.php
文件中注册扩展包
return [ // ... Bneumann\MockApiBundle\BneumannMockApiBundle::class => ['test' => true], ];
- (可选) 在您的
config/packages/test
目录中创建一个bneumann_mock_api.yaml
文件来配置扩展包
bneumann_mock_api: mocks_path: tests/mocks
使用方法
要开始使用 Mock API Bundle,您需要在 mocks_path
配置选项指定的目录(默认为 tests/mocks
)中创建一个或多个模拟配置文件。该文件应包含一系列模拟响应,每个响应都有一个 URL、方法以及可选的 POST 请求体和响应数据(状态码和要返回的正文)。
以下是一个模拟配置文件的示例
mocks: - url: https://example.com/api/users method: GET response: status: 200 body: [ { "id": 1, "name": "John Doe" }, { "id": 2, "name": "Jane Doe" } ] - url: https://example.com/api/users method: POST request: body: name: Alice response: status: 201 body: { "id": 3, "name": "Alice" }
您可以将正文或响应以及请求声明为 JSON 或 YAML。上面的示例中,为了演示目的,使用了 JSON 作为响应,YAML 作为请求。
贡献
欢迎贡献!请随时提交 Pull Request 或打开 Issue 以帮助改进此扩展包。
许可证
此扩展包是开源软件,受 MIT 许可证 许可。