Skip to content

jDolba/slim-http-smoke-testing

Repository files navigation

Slim framework HTTP Smoke testing

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.