Site icon Shaharia's Blog

Writing Unit test for Slim Framework

Writing unit test in slim framework

Writing unit test in slim framework

It’s not so easy to write Test Cases for slim framework. But I tried by autoloading SlimEnvironment class by requiring applications global autoload script.

And after that I just created a Slim mock environment to handle the test case environment.

<?php
require_once __DIR__ . '/../vendor/autoload.php';
use Slim\Environment;
class RoutesTest extends PHPUnit_Framework_TestCase
{
    public function request($method, $path, $options = array())
    {
        // Capture STDOUT
        ob_start();
        // Prepare a mock environment
        Environment::mock(array_merge(array(
            'REQUEST_METHOD' => $method,
            'PATH_INFO' => $path,
            'SERVER_NAME' => 'slim-test.dev',
        ), $options));
        $app = new \Slim\Slim();
        $this->app = $app;
        $this->request = $app->request();
        $this->response = $app->response();
        // Return STDOUT
        return ob_get_clean();
    }
    public function get($path, $options = array())
    {
        $this->request('GET', $path, $options);
    }
    public function testIndex()
    {
        $this->get('/');
        $this->assertEquals('200', $this->response->status());
    }
}

If you have any further idea about to please share with me. Thanks in advance!

Exit mobile version