クラス名と関連するパスの間のさまざまなマッピングを使用して、何度もインスタンス化できるClassLoaderコンポーネントを作成およびテストしています。各 ClassLoader は、特定のパッケージのローダーとして機能する必要があります。
ClassLoader によって処理されるファイルのインクルードをテストまたはモックする簡単で目立たない方法はありますか?
最も単純なローダーで明確にしましょう。
class TestTwoPackageLoader implements IPackageLoader
{
private $directory;
public function register()
{
spl_autoload_register(array($this, 'loadClass'));
$this->directory = dirname(__FILE__);
}
public function loadClass($class)
{
if (isset($this->classes[$class]))
include $this->directory.'/'.$this->classes[$class];
}
private $classes = array(
'SecClass' => 'test_two/SecClass.php',
'ThClass' => 'test_two/ThClass.php',
);
}