kazu9su/functional-tester

This is a library for functional test of PHP legacy products

0.0.2 2016-01-15 11:38 UTC

README

Build Status

This is a library for functional test of PHP legacy products.
If you have difficulty with testing such products, this library can help you.

Usage

First, create a new "FunctionalTester" instance.

You can set session, document root and include paths used in your target product.

If you call request method like http request, you can get a parsed response instance of GuzzleHttp\Message\Response

use FunctionalTester/FunctionalTester;

class IndexTest extends PHPUnit_Framework_TestCase
{
    public function testIndex
    {
        $tester = new FunctionalTester();
        
        //set session used in your target product.
        $tester->setSession(['id' => 'hogehoge']);
        
        //set your document root. you can also set as constructer 1st argument.
        $tester->setDocumentRoot('/path/to/src');
        
        //set include path used in your target product. you can also set as constructer 2nd argument.
        $tester->setIncludePath('.:/usr/bin/php');

        //you can also add
        $tester->addIncludePath(':/path/to/src');
        
        //you can call get or post method like http request
        $response = $tester->get('index.php', ['username' => 'hogehoge']);
        
        //you can assert request results like this.
        $this->assertEquals(200, $response->getStatusCode());
        $this->assertEquals('OK', $response->getBody());
    }
}

Installation

You can install this library through Composer .

$ composer require kazu9su/functional-tester

This will install FunctionalTester and all required dependencies.

Tests

To execute the test suite, you'll need phpunit.

$ phpunit

License

The FunctionalTester is licensed under the MIT license. See License File for more information.