php - 使用 SimpleTest 模拟命名空间类

标签 php simpletest spl-autoload-register

我正在使用 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/

相关文章:

php - spl_autoload_register 不工作

无法通过 spl_autoload_register 加载具有命名空间的 PHP 类?

php - laravel 5.6 多个表上 Eloquent 一对多关系

zend-framework - 为 PHP 寻找 "headless browser"等价物以进行 Cucumber 测试

php - cakephp Controller 测试 - 如何测试需要授权的操作?

php - PHP : simpletest, phpunit 或哪个单元测试框架?

PHP AWS SDK 自动加载器与 Codeigniter 冲突

php - 如何在Twilio短信发送代码中添加回调URL?

php - 如何获取在我的网站上发帖的用户的地理区域并将其存储在数据库中

php - 我应该如何阅读这段代码?