2017 © Pedro Peláez
 

library tutor

PHPUnit Extensions to easily spec-test data models

image

klever/tutor

PHPUnit Extensions to easily spec-test data models

  • Monday, June 11, 2018
  • by tklever
  • Repository
  • 1 Watchers
  • 0 Stars
  • 4,233 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 2 Versions
  • 14 % Grown

The README.md

klever/tutor

Easily test accessor methods on your models by providing a spec in your test case., (*1)

Build Status, (*2)

Installation

composer require --dev klever/tutor

Usage

Extend \Klever\Tutor\AccessMethod\AbstractTestCase and provide a spec for your model., (*3)

Example

\Klever\TutorTest\AccessMethod\AbstractTestCaseIntegrationTest, (*4)

Configuration

\Klever\Tutor\AccessMethod\TestConfiguration::fromArray, (*5)

accessor_name

Override for non-conventional getters., (*6)

Sample Class

class Model
{
    private $foo;

    public function getBar()
    {
        return $this->foo;
    }
}

Sample Config

class ModelTest extends \Klever\Tutor\AccessMethod\AbstractTestCase
{
    public function getClassAccessMethodTestConfiguration()
    {
        return [
            'accessors' => [
                'foo' => [
                    'accessor_name' => 'getBar',
                ],
            ],
        ];
    }
}

is_state_accessor

Use an is accessor instead of a get accessor., (*7)

Sample Class

class Model
{
    private $foo = true;

    public function isFoo()
    {
        return $this->foo;
    }
}

Sample Config

class ModelTest extends \Klever\Tutor\AccessMethod\AbstractTestCase
{
    public function getClassAccessMethodTestConfiguration()
    {
        return [
            'accessors' => [
                'foo' => [
                    'is_state_accessor' => true,
                ],
            ],
        ];
    }
}

default_value

Default value of a property., (*8)

Sample Class

class Model
{
    private $foo = 'bar';

    public function getFoo()
    {
        return $this->foo;
    }
}

Sample Config

class ModelTest extends \Klever\Tutor\AccessMethod\AbstractTestCase
{
    public function getClassAccessMethodTestConfiguration()
    {
        return [
            'accessors' => [
                'foo' => [
                    'default_value' => 'bar',
                ],
            ],
        ];
    }
}

injectable_value

Value set into a property. This will be validated as the expected_value by default., (*9)

Sample Class

class Model
{
    private $foo;

    public function getFoo()
    {
        return $this->foo;
    }

    public function setFoo($foo)
    {
        $this->foo = $foo;
    }
}

Sample Config

class ModelTest extends \Klever\Tutor\AccessMethod\AbstractTestCase
{
    public function getClassAccessMethodTestConfiguration()
    {
        return [
            'accessors' => [
                'foo' => [
                    'injectable_value' => 'bar',
                ],
            ],
        ];
    }
}

expected_value

Expected value of a property., (*10)

Sample Class

class Model
{
    private $foo;

    public function getFoo()
    {
        return $this->foo;
    }

    public function setFoo($foo)
    {
        $this->foo = $foo . 'bar';
    }
}

Sample Config

class ModelTest extends \Klever\Tutor\AccessMethod\AbstractTestCase
{
    public function getClassAccessMethodTestConfiguration()
    {
        return [
            'accessors' => [
                'foo' => [
                    'injectable_value' => 'foo',
                    'expected_value' => 'foobar',
                ],
            ],
        ];
    }
}

injection_method_fluent

Validates that the setter returns the model., (*11)

Sample Class

class Model
{
    private $foo;

    public function setFoo($foo)
    {
        $this->foo = $foo;
        return $this;
    }
}

Sample Config

class ModelTest extends \Klever\Tutor\AccessMethod\AbstractTestCase
{
    public function getClassAccessMethodTestConfiguration()
    {
        return [
            'accessors' => [
                'foo' => [
                    'injectable_value' => 'foo',
                    'injection_method_fluent' => true,
                ],
            ],
        ];
    }
}

injector_name

Override for non-conventional setters., (*12)

Sample Class

class Model
{
    private $foo;

    public function setBar($bar)
    {
        $this->foo = $bar;
    }
}

Sample Config

class ModelTest extends \Klever\Tutor\AccessMethod\AbstractTestCase
{
    public function getClassAccessMethodTestConfiguration()
    {
        return [
            'accessors' => [
                'foo' => [
                    'injectable_value' => 'foo',
                    'injector_name' => 'setBar',
                ],
            ],
        ];
    }
}

Dependencies

See composer.json., (*13)

Contributing

git clone git@github.com:tklever/tutor.git && cd tutor
composer update && vendor/bin/phing

This library attempts to comply with PSR-1, PSR-2, and PSR-4. If you notice compliance oversights, please send a patch via pull request., (*14)

The Versions

11/06 2018

dev-master

9999999-dev

PHPUnit Extensions to easily spec-test data models

  Sources   Download

The Requires

 

The Development Requires

by Tim Klever

test phpunit model entity data getter setter

13/09 2016

v0.1.0-alpha

0.1.0.0-alpha

PHPUnit Extensions

  Sources   Download

The Requires

 

The Development Requires

by Tim Klever