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.