我正在使用SimpleTest来对我的PHP类进行单元测试。我添加了一个自定义基类,它执行spl_autoload_register
来自动加载我需要的类。
但现在嘲笑成了一个问题。如何模拟通过命名空间加载的类?
这基本上是我在测试课上所拥有的。
<?php
require_once('../../GGUnitTestCase.php');
Mock::generate(''Core'Routes'GGRoute');
class TestGGRouter extends GGUnitTestCase
{
function TestMethod()
{
$route = new 'Core'Route'GGRoute(); // <-- This loads up fine!
// But i need a Mock class, not the real one.
// How to load a Mock in this case?
$routeMock = new 'Core'Routes'MockGGRoute(); // <-- Doesn't work!
$this->assertTrue(false);
}
}
?>
有人知道我如何仍然模拟通过命名空间加载的类(自动加载)吗?
将命名空间类名称中的'
(除前一个之外的所有)替换为 ::
。在您的示例中,这将是...
Mock::generate('Core::Routes::GGRoute');