我正在使用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);
}
}
?>
任何人都知道如何仍然可以模拟通过命名空间加载的类(自动加载)?
答案 0 :(得分:2)
使用\
替换名称空间类名称中的::
(除了前一个之外)。在你的例子中,这将是......
Mock::generate('Core::Routes::GGRoute');