This module allows you to run tests inside Slim 3 Microframework.
Based on ZendExpressive Module.
Via commandline:
composer require --dev herloct/codeception-slim-module
Via composer.json
:
{
"require-dev": {
"herloct/codeception-slim-module": "^1.1"
}
}
Put this on your codeception.yml
modules:
config:
\Herloct\Codeception\Module\Slim:
container: path/to/container.php
REST:
depends: \Herloct\Codeception\Module\Slim
Or on your tests/functional.suite.yml
modules:
enabled:
- \Helper\Functional
- \Herloct\Codeception\Module\Slim:
container: path/to/container.php
- REST:
depends: \Herloct\Codeception\Module\Slim
The container
properties is a relative path to file which returns your App's Container.
Here is the minimum container.php
contents.
require __DIR__.'/vendor/autoload.php';
use Psr\Container\ContainerInterface;
use Slim\App;
use Slim\Container;
$container = new Container([
App::class => function (ContainerInterface $c) {
$app = new App($c);
// routes and middlewares here
return $app;
}
]);
return $container;
You could use this Sample Project as a reference.
- app - instance of
\Slim\App
- container - instance of
\Psr\Container\ContainerInterface
- client - BrowserKit client
- Add more acceptance/functional tests other than REST.