使用 SimpleTest 模拟命名空间类


Mock namespaced class with SimpleTest

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