Php 使用SimpleTest模拟命名空间类
我正在使用SimpleTest对我的PHP类进行单元测试。我添加了一个自定义基类,它执行Php 使用SimpleTest模拟命名空间类,php,simpletest,spl-autoload-register,Php,Simpletest,Spl Autoload Register,我正在使用SimpleTest对我的PHP类进行单元测试。我添加了一个自定义基类,它执行spl\u autoload\u寄存器来自动加载我需要的类 但现在嘲笑成了一个问题。如何模拟通过命名空间加载的类 这基本上就是我在测试课上学到的 <?php require_once('../../GGUnitTestCase.php'); Mock::generate('\Core\Routes\GGRoute'); class TestGGRouter extends GGUnitTestCas
spl\u autoload\u寄存器
来自动加载我需要的类
但现在嘲笑成了一个问题。如何模拟通过命名空间加载的类
这基本上就是我在测试课上学到的
<?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');
这不会解决您的问题,但是现在没有人使用SimpleTest。考虑切换到PHPUnter。这是事实上的行业标准。@Gordon你可能是对的,但我发现使用数据包管理器设置PHPUnit是一件轻而易举的事。我还使用一个托管帐户,不允许我安装任何第三方应用程序。@Vivendi您可以下载PHP单元作为PHAR存档,这是一个简单的类似ZIP的文件,包含PHP单元使用的所有必要文件。@raina77ow是的,可以,谢谢。你能把这个作为答案吗?@ComFreek我的主机的PHP版本似乎支持Phar文件。我也会试着看看PHPUnit,谢谢你的建议。