byjg / swagger-test
A set of tools for testing your REST calls based on the Swagger or OpenAPI documentation using PHPUnit
Fund package maintenance!
byjg
Installs: 306 099
Dependents: 4
Suggesters: 0
Security: 0
Stars: 98
Watchers: 6
Forks: 32
Open Issues: 15
Requires
- php: >=8.1 <8.4
- ext-json: *
- byjg/webrequest: ^5.0
Requires (Dev)
- byjg/restserver: ^5.0
- phpunit/phpunit: ^9.6
- vimeo/psalm: ^5.9
README
A set of tools for testing your REST calls based on the OpenApi specification using PHPUnit.
Currently, this library supports the OpenApi specifications 2.0
(formerly swagger) and 3.0
.
Some features like callbacks, links and references to external documents/objects weren't implemented.
PHP Swagger Test can help you to test your REST Api. You can use this tool both for Unit Tests or Functional Tests.
This tool reads a previously Swagger JSON file (not YAML) and enables you to test the request and response. You can use the tool "https://github.com/zircote/swagger-php" for creating the JSON file when you are developing your rest API.
The ApiTestCase's assertion process is based on throwing exceptions if some validation or test failed.
Use cases for PHP Swagger test
You can use the Swagger Test library as:
- Functional test cases
- Contract test cases
- Runtime parameters validator
- Mocking Requests and Validate your specification
Who is using this library?
Install
composer require "byjg/swagger-test"
Tests
SPEC=swagger php -S 127.0.0.1:8080 tests/rest/app.php & SPEC=openapi php -S 127.0.0.1:8081 tests/rest/app.php & vendor/bin/phpunit
Questions?
Please raise your issue on Github issue.
References
This project uses the byjg/webrequest component. It implements the PSR-7 specification, and a HttpClient / MockClient to do the requests. Check it out to get more information.