snailweb/php-tests-helpers

该软件包最新版本(1.0.3)没有提供许可证信息。

PHP 测试辅助工具

1.0.3 2019-03-08 09:46 UTC

This package is auto-updated.

Last update: 2024-09-09 14:50:03 UTC


README

PHP 测试辅助工具

用法

AccessProtectedTrait

用于调用方法和获取/设置具有私有/保护可见性的属性值的辅助工具

class MyClassTest
{
    use Snailweb\Helpers\Tests\AccessProtectedTrait;

    public function testMyMethod()
    {
        // Invoke method
        $returnValue = $this->invokeMethod($object, 'methodName', ['arg1', 'arg2']);

        // Get attribute
        $attributeValue = $this->getAttribute($object, 'attributeName');

        // Set attribute
        $this->setAttribute($object, 'attributeName', $attributeValue);
    }
}

TestIteratorTrait

用于自动为类应用迭代器测试的辅助工具。

要求

  • 被测试的类必须实现Iterator(这正是这样做的原因...)
  • 被测试的类构造函数必须不接受任何参数
  • 测试类必须使用类名调用setUpInterator(),可选地提供键名和数组名(示例显示默认值)
class MyClassTest extends TestCase
{
    use Snailweb\Helpers\Tests\TestIteratorTrait;
    
    public function setUp(): void
    {
        $this->setUpIterator(MyClass::class, 'key', 'array');
    }

    // Do your methods tests
    // ...
}

注意:如果您需要测试您类的构造函数,您必须这样做

class MyClassTest extends TestCase
{
    use Snailweb\Helpers\Tests\TestIteratorTrait{
        testConstruct as testIteratorConstruct;
    }
    
    public function setUp(): void
    {
        $this->setUpIterator(MyClass::class, 'key', 'array');
    }

    public function testConstruct()
    {
        $this->testIteratorConstruct();

        // Do your constructor tests
        // ...
    }

    // Do your methods tests
    // ...
}

TestSplSubjectTrait

用于自动为类应用SplSubject测试的辅助工具。

要求

  • 被测试的类必须实现SplSubject(这正是这样做的原因...)
  • 被测试的类构造函数必须不接受任何参数
  • 测试类必须使用类名调用setUpSplSubject(),可选地提供观察者名(示例显示默认值)
class MyClassTest extends TestCase
{
    use Snailweb\Helpers\Tests\TestSplSubjectTrait;
    
    public function setUp(): void
    {
        $this->setUpSplSubject(MyClass::class, 'observers');
    }

    // Do your methods tests
    // ...
}