出于某种原因,当我尝试测试抽象类时,我得到PHPUnit_Framework_MockObject_RuntimeException: Class "AbstractClass" does not exist.
这是代码
AbstractClass.php
<?php
namespace SD\Project;
abstract class AbstractClass
{
public function handle()
{
}
}
AbstractClassTest.php
<?php
require_once 'AbstractClass.php';
use SD\Project\AbstractClass;
class AbstractClassTest extends PHPUnit_Framework_TestCase
{
public function testHandle()
{
$stub = $this->getMockForAbstractClass('AbstractClass');
}
}
当我摆脱命名空间并使用语句时,代码会成功执行。我做错了什么?
答案 0 :(得分:5)
您没有使用该类的完全限定路径。
$stub = $this->getMockForAbstractClass('\SD\Project\AbstractClass');
阅读相似:PHPUnit, Interfaces and Namespaces (Symfony2)
示例:http://theaveragedev.com/testing-abstract-classes-with-phpunit/