pion / laravel-swagger-test
使用Laravel的底层请求测试功能测试您的路由,无需实际发送请求即可对您的API模式进行测试。
dev-master
2021-02-04 16:33 UTC
Requires
- byjg/swagger-test: dev-allow-custom-requester#8f2f8d2a927b2300e6a0bb09c54f8682d64a6e14
- laravel/framework: *
This package is auto-updated.
Last update: 2024-09-05 00:25:22 UTC
README
底层逻辑使用了来自byjg的PHP Swagger Test。
使用Laravel的底层请求测试功能测试您的路由,无需实际发送请求即可对您的API模式进行测试。
支持
有关如何进行测试以及支持哪些OpenAPI,请查看PHP Swagger Test。
在撰写此README时,部分支持OpenAPI 3。
安装
-
为php-swagger-test添加一个自定义仓库,包含内部改进。(在未来可能合并)。
"repositories": [ { "type": "git", "url": "https://github.com/pionl/php-swagger-test" } ]
-
要求包
compsoer require pion/laravel-swagger-test
用法
使用Laravel的TestCase,并使用AssertRequestAgainstSchema
特性和断言请求与模式。
使用与ApiRequester
相同的"请求构建"。更多详细信息请查看PHP Swagger Test。
use Tests\TestCase; use ByJG\ApiTools\AssertRequestAgainstSchema; use ByJG\ApiTools\Base\Schema; use ByJG\ApiTools\Laravel\LaravelRequester; class GetUsersTest extends TestCase { use AssertRequestAgainstSchema; /** * Loaded schema for phpunit instance. * * @var Schema|null */ public static $cachedSchema = null; protected function setUp() { parent::setUp(); // Load only once, must be made in setup to be able to use base_path if (null !== $this->schema) { return; } // Load only once per phpunit instance if (null === self::$cachedSchema) { self::$cachedSchema = Schema::getInstance(file_get_contents(base_path('docs/api.json'))); } // Set the schema $this->setSchema(self::$cachedSchema); } public function testGetUsersWithoutFiltersInElasticSearchAgainstSchema() { // Create data $this->createUser(); $request = new LaravelRequester($this); $request ->withMethod('GET') ->withPath('/v1/users'); $this->assertRequest($request); } }