genesis / mock-api
开发和运行针对模拟API的自动化测试。
Requires
- php: ~7.1
- ext-curl: *
- react/http: ~0.8
Requires (Dev)
This package is not auto-updated.
Last update: 2024-09-15 16:09:51 UTC
README
有一个依赖于API的应用程序,但测试负担太重?使用此包替换您的API,并在运行时模拟请求。
如何安装
composer require genesis/mock-api
make -f ./vendor/genesis/mock-api/Makefile build
make mockapi-install
启动 mock-api
make mockapi-up
测试模拟API是否正在运行
curl http://0.0.0.0:8989/alive
停止 mock-api
make mockapi-down
在生成的Makefile中查找更多命令。
静态模拟
您可以将您的静态路由(在启动模拟API时即可使用的路由)添加到staticMocks文件夹中。数据格式定义如下,并已存在示例请求。
动态模拟
要模拟请求,请使用mockData json将模拟请求发送到/mocks
。示例模拟请求
# POST /mocks { "mockData": { "url": "/user/abc123", "get": [{ "body": { "id": "abc123", "name": "Wahab Qureshi" } }] } }
您可以使用动态模拟覆盖静态模拟。清除模拟将使其恢复为静态模拟。
完整的模拟数据选项
{ "mockData": { "url": "/user/abc123", "get": [{ "with": "/abc123/", "response_code": 301, "headers": {"lola": "123", "baby boo": "dudu"}, "body": { "id": "abc123", "name": "Wahab Qureshi" }, "proxy": { "url": "http://google.com", "headers": { "app-token": "88374783847" } }, "consecutive_responses": [{ "response_code": 205, "body": { "id": "abc123", "name": "Wahab Qureshi" } }, { "response_code": 500, "body": "internal server error" }] }] } }
mockData (object)
:包含模拟请求信息。
mockData.url (string)
:要模拟的URL,可以是现有的静态模拟URL。
mockData.<METHOD> ([]object)
:要模拟的URL的方法。
mockData.<METHOD>.with (?string)
:可选地应用于URL的正则表达式模式。
mockData.<METHOD>.response_code (?int)
:可选地返回的响应代码。
mockData.<METHOD>.headers (?object)
:要返回的头部。
mockData.<METHOD>.body (mixed)
:响应内容。
mockData.<METHOD>.consecutive_responses (?[]object)
:在连续调用中逐个返回。支持response_code、headers和body。
mockData.<METHOD>.proxy (?object)
:通过另一个URL代理响应。
查看模拟端点
通过访问/mocks
查看现有的模拟请求
清除动态模拟
要清除所有动态模拟,请发送GET
请求到/mocks?purge=true
开发
运行测试只需运行behat测试
./vendor/bin/behat