0

クラス名と関連するパスの間のさまざまなマッピングを使用して、何度もインスタンス化できる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',
 );
}
4

1 に答える 1

2

独自のコードではなく、言語機能をテストする必要があるかどうかはわかりません。そうは言っても、インクルードされたファイルが既知のクラスまたは関数を定義していると仮定して、class_existsまたはを介し​​てインクルードが成功したかどうかをテストできます。function_exists

于 2010-02-25T17:46:18.320 に答える