使用phpunit测试自动加载器,无需从composer的自动加载器加载类

时间:2017-01-31 11:02:39

标签: php phpunit composer-php

来自Autoloader for distributed PHP plugins that includes composer packages

的问题

我正在编写一个发布CMS分布式扩展的应用程序。将每个分布式扩展视为包含扩展代码及其所有依赖项(复制的编写器包)的zip。

在软件包中,有一个加载它的依赖项的自动加载器。

我正在使用PHPUnit来测试依赖项是否正确加载。但是当在测试类中实例化类时,依赖关系已经通过composer加载了。

我在下面的测试中执行composer exec phpunit TestAutoloader如何编写测试以便不从编写器加载依赖项?

测试代码

class TestAutoloader extends TestCase
{
    /**
     * @test
     */
    public function test_can_load_dependencies() {
        $myClass = new MyClass();

        $reflection = new \ReflectionClass($myClass->client());
        echo $reflection->getFileName(); // This is loading from vendors folder instead of uploads/dependency

        //$this->assertTrue(class_exists('GuzzleHttp\Client'));
    }
}

说明的问题

/upload/MyClass.php

should load

/upload/dependencies/example/src/MyDependency.php

but the test is loading from

/vendor/example/src/MyDependency.php

0 个答案:

没有答案