greensight / laravel-openapi-testing
Requires
- php: ^8.0
- osteel/openapi-httpfoundation-testing: ^0.6.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- mockery/mockery: ^1.4
- orchestra/testbench: ^6.0
- pestphp/pest: ^1.16
- php-parallel-lint/php-var-dump-check: ^0.5.0
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2021-10-05 16:26:38 UTC
README
已弃用,请使用 https://github.com/ensi-platform/laravel-openapi-testing 代替
此包基于 osteel/openapi-httpfoundation-testing
,并提供 ValidatesAgainstOpenApiSpec
特性
安装
您可以通过 composer 安装此包
composer require greensight/laravel-openapi-testing
基本用法
让我们根据 oas3 添加验证到我们的测试中。我们只需要 use ValidatesAgainstOpenApiSpec;
并实现如下 getOpenApiDocumentPath(): string
方法
class SomeTestCase extends AnotherTestCase { use ValidatesAgainstOpenApiSpec; protected function getOpenApiDocumentPath(): string { return public_path('api-docs/v1/index.yaml'); } }
特性会覆盖 $this->call
方法来添加必要的验证。因此,所有与 http 相关的辅助方法(如 $this->get()
、$this->postJson()
等)都会执行验证。请求和响应都会与给定的规范进行验证。如果验证失败,则测试会自动标记为失败,无需手动断言。
关闭验证
在某些情况下,您可能需要关闭特定请求的验证。以下是如何操作的示例
// Turn off validation for both request $this->skipNextOpenApiRequestValidation()->getJson(...); // Turn off validation for both response $this->skipNextOpenApiResponseValidation()->getJson(...); // Turn off validation for both request and response $this->skipNextOpenApiValidation()->getJson(...);
路径映射
为了验证 oas3 请求,该包需要将其映射到规范文档中描述的路径之一。我们使用 Laravel 路由的路径($request->route()->uri
)进行此操作。如果它不完全匹配您的情况,您可以像这样显式设置当前请求的 OpenApi 路径
$this->forceOpenApiPath('/pets/{petId}')->getJson(...);
贡献
有关详细信息,请参阅 CONTRIBUTING
测试
- composer install
- npm i
- composer test
安全漏洞
请查看我们如何报告安全漏洞的 安全策略
许可
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件