使用SimpleTest模拟命名空间类

时间:2013-11-02 10:47:35

标签: php simpletest spl-autoload-register

我正在使用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);
    }
}
?>

任何人都知道如何仍然可以模拟通过命名空间加载的类(自动加载)?

1 个答案:

答案 0 :(得分:2)

使用\替换名称空间类名称中的::(除了前一个之外)。在你的例子中,这将是......

Mock::generate('Core::Routes::GGRoute');