由于某种原因,当我尝试测试抽象类时,我得到了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');
 }
}

当我摆脱命名空间并使用语句时,代码将成功执行。我做错了什么?

最佳答案

您没有使用该类的完全限定路径。

$stub = $this->getMockForAbstractClass('\SD\Project\AbstractClass');

阅读类似:PHPUnit, Interfaces and Namespaces (Symfony2)

示例:http://theaveragedev.com/testing-abstract-classes-with-phpunit/

关于phpunit找不到抽象类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30037996/

10-10 02:54
查看更多