i3bepb/reflection-for-test

通过反射为测试添加访问方法特性

1.0.1 2023-03-01 18:30 UTC

This package is auto-updated.

Last update: 2024-09-30 01:36:28 UTC


README

通过反射为测试添加访问方法特性

安装

composer require i3bepb/reflection-for-test

如何使用

当需要在测试中调用私有方法并检查结果时,您可以使用特性 AccessToMethod。示例

  
use I3bepb\ReflectionForTest\AccessToMethod;
use PHPUnit\Framework\TestCase;

class AnyTest extends TestCase
{
    use AccessToMethod;

    /**
     * Any test.
     *
     * @test
     *
     * @throws \ReflectionException
     */
    public function any_test()
    {
        $object = new ClassWithPrivateMethod();

        // In $resultPrivateMethod result after call private method
        $resultPrivateMethod = $this->privateMethodWithParameters($object, 'privateMethod', ['abc', 123]);
        
        // Any test...
    }

通过docker进行测试

下载镜像

docker pull php:7.0.33-cli-alpine

运行容器并挂载卷

docker run --rm -it -v $(pwd):/app -w /app php:7.0.33-cli-alpine sh

进入容器获取composer - https://getcomposer.org/download/

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

现在存在文件 composer.phar,您可以下载依赖项

php composer.phar install

运行测试

./vendor/bin/phpunit