jdolba / slim-http-smoke-testing
HTTP Smoke Testing for your Slim Framework based application
Requires
- php: ~7.1||~8.0
- slim/slim: ~3.0
Requires (Dev)
- phpstan/phpstan: ^0.12
- phpstan/phpstan-phpunit: ^0.12
- phpunit/phpunit: ^9.3
- squizlabs/php_codesniffer: ^3.0
This package is auto-updated.
Last update: 2025-03-04 13:07:57 UTC
README
This simple package will load ALL your routes from Slim\App
and make
a Request on them to receive Response to assert expected return http code.
It is not very smart or bullet-proof check, but it will simply tell you: does it run?.
After initial configuration it is almost maintenance-free as it checks any new routes automatically.
Inspired by shopsys/http-smoke-testing THANK YOU!
Install
Via Composer
composer require --dev jdolba/slim-http-smoke-testing
This package internally uses PHPUnit to run the tests. That means that you need to setup your phpunit.xml properly.
WARNING
Because this package will make a real Request
be sure you are NOT executing this test on production db!
Usage
Create new PHPUnit test extending
\JDolba\SlimHttpSmokeTesting\SlimApplicationHttpSmokeTestCase
class and implement setUpSmokeTestAndCallConfigure
and customize
methods.
You can run your new test by:
php vendor/bin/phpunit tests/Smoke/MyAwesomeApplicationSmokeTest.php
About RequestDataSet
Each your route uri + acceptable http method is represented as
\JDolba\SlimHttpSmokeTesting\RequestDataSet
so for example
$app = new \Slim\App();
$app->any('/', function ($request, $response, $args) {
//...
return $response;
});
will be interpreted as 6 independent DataSets, because Slim is using for "any":
['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS']
you can customize passed $request
in your test class using customize
method.
This 6 data sets will have routeName '/'
, but
Change log
Please see CHANGELOG for more information on what has changed recently.
Testing
$ composer test
Contributing
Please see CONTRIBUTING and CODE_OF_CONDUCT for details.
Security
If you discover any security related issues, please email jakub@dolba.cz instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.