我正在使用 SimpleTest 对我的 PHP 类进行单元测试。我添加了一个自定义基类,它执行 spl_autoload_register
来自动加载我需要的类。
但是现在 mock 成了一个问题。我如何模拟通过命名空间加载的类?
这基本上就是我的测试类中的内容。
<?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');
关于php - 使用 SimpleTest 模拟命名空间类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19741116/