This module allows you to run functional tests inside Slim 4 Microframework without HTTP calls, so tests will be much faster and debug could be easier.
Inspiration comes from herloct/codeception-slim-module library.
- php:
^8.0 - slim/slim:
^4.7 - codeception/codeception:
^5.0
If you don't know Codeception, please check Quickstart Guide first.
If you already have Codeception installed in your Slim application, you can add codeception-slim-module with a single composer command.
composer require --dev docler-labs/codeception-slim-moduleFor PHP 7 support, please use docler-labs/codeception-slim-module:^2.0 version
composer require --dev docler-labs/codeception-slim-module "^2.0"If you use Slim v3, please use the previous version from library:
composer require --dev docler-labs/codeception-slim-module "^1.0"Example (test/suite/functional.suite.yml)
modules:
enabled:
- REST:
depends: DoclerLabs\CodeceptionSlimModule\Module\Slim
config:
DoclerLabs\CodeceptionSlimModule\Module\Slim:
application: path/to/application.phpThe application property is a relative path to file which returns your Slim\App instance.
Here is the minimum application.php content:
require __DIR__ . '/vendor/autoload.php';
use Slim\Factory\AppFactory;
$app = AppFactory::create();
// Add routes and middlewares here.
return $app;class UserCest
{
public function getUserReturnsWithEmail(FunctionalTester $I): void
{
$I->haveHttpHeader('Content-Type', 'application/json');
$I->sendGET('/users/John');
$I->seeResponseCodeIs(200);
$I->seeResponseContainsJson(
[
'email' => '[email protected]',
]
);
}
}