我正在编写和测试 ClassLoader 组件,该组件可以多次实例化,并且类名及其相关路径之间存在各种映射。每个ClassLoader都应该作为特定包的加载器。
是否有一种简单,不显眼的方式来测试或模拟包含ClassLoader处理的文件?
让我用最简单的Loader澄清:
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',
);
}
答案 0 :(得分:2)
我不确定您是否应该测试语言功能,而不是您自己的代码。也就是说,您可以通过class_exists
或function_exists
测试是否成功包含,假设包含的文件定义了已知的类或函数。