jdolba/slim-http-smoke-testing

HTTP Smoke Testing for your Slim Framework based application

v1.2.0 2022-08-04 07:15 UTC

This package is auto-updated.

Last update: 2024-05-04 11:05:14 UTC


README

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads

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

See example test class

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.