klever/

该软件包最新版本(v0.1.0-alpha)没有可用的许可信息。

PHPUnit 扩展,轻松进行数据模型的 spec 测试

v0.1.0-alpha 2016-09-12 23:46 UTC

This package is not auto-updated.

Last update: 2024-09-12 18:53:16 UTC


README

通过在测试用例中提供 spec,轻松测试模型上的访问器方法。

Build Status

安装

composer require --dev klever/tutor

用法

扩展 \Klever\Tutor\AccessMethod\AbstractTestCase 并为您的模型提供 spec。

示例

\Klever\TutorTest\AccessMethod\AbstractTestCaseIntegrationTest

配置

\Klever\Tutor\AccessMethod\TestConfiguration::fromArray

accessor_name

为非传统获取器重写。

示例类

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

示例配置

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

is_state_accessor

使用 is 访问器而不是 get 访问器。

示例类

class Model
{
    private $foo = true;
    
    public function isFoo()
    {
        return $this->foo;
    }
}

示例配置

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

default_value

属性的默认值。

示例类

class Model
{
    private $foo = 'bar';
    
    public function getFoo()
    {
        return $this->foo;
    }
}

示例配置

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

injectable_value

设置到属性中的值。默认情况下,这将作为 expected_value 进行验证。

示例类

class Model
{
    private $foo;
    
    public function getFoo()
    {
        return $this->foo;
    }
    
    public function setFoo($foo)
    {
        $this->foo = $foo;
    }
}

示例配置

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

expected_value

属性的预期值。

示例类

class Model
{
    private $foo;
    
    public function getFoo()
    {
        return $this->foo;
    }
    
    public function setFoo($foo)
    {
        $this->foo = $foo . 'bar';
    }
}

示例配置

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

injection_method_fluent

验证设置器返回模型。

示例类

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

示例配置

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

injector_name

为非传统设置器重写。

示例类

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

示例配置

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

依赖关系

composer.json

贡献

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

此库试图遵守 PSR-1PSR-2PSR-4。如果您发现合规性疏忽,请通过拉取请求发送补丁。