【问题标题】:Unit Testing with PHPUnit & Doctrine2: Autoloading Failed使用 PHPUnit 和 Doctrine2 进行单元测试:自动加载失败
【发布时间】:2011-05-30 14:16:46
【问题描述】:

我收到这个错误

D:\Projects\Tickle\tests>phpunit
PHPUnit 3.5.5 by Sebastian Bergmann.

..........ok1
Fatal error: Doctrine\Common\ClassLoader::loadClass(): Failed opening required 'D:\Projects\Tickle\Application\Models\Ap
plication\Models\User.php' (include_path='D:\Projects\Tickle\application/../library;D:\Projects\Tickle\application;D:\Pr
ojects\Tickle\library;D:\ResourceLibrary\Frameworks\PHPFrameworks;C:\Program Files (x86)\PHP\pear;.;c:\php\includes') in
 D:\ResourceLibrary\Frameworks\PHPFrameworks\Doctrine\Common\ClassLoader.php on line 148

注意它的重复“D:\Projects\Tickle\Application\Models\Application\Models\User.phpApplication\Models。在一些 echo 语句的帮助下,我将其缩小到单元测试的 1 个功能

protected function isAllowed($userId, $taskId, $privilege) {
  $user = $this->em->find('Application\Models\User', $userId);
  echo 'ok1'; // this gets printed
  $task = $this->em->find('Application\Models\Task', $taskId); // this seem to be the cause of the problem
  echo 'ok2'; // this doesn't get printed
  return $this->acl->isAllowed($user, $task, $privilege);
}

全班http://pastebin.com/rJungFvP

所以我尝试在 Tasks 类中查找使用 User 的东西......唯一可能使用 User 类的东西是

/**
 * @ManyToOne(targetEntity="User", inversedBy="ownedTasks")
 */
protected $owner;

/**
 * @ManyToOne(targetEntity="User", inversedBy="assignedTasks")
 */
protected $assigned;

除此之外,我看不到任何用户的使用。全班http://pastebin.com/wDPXUPSV

我做错了什么?

【问题讨论】:

    标签: zend-framework phpunit doctrine-orm zend-test


    【解决方案1】:

    问题实际上是在TodoList 类中发现的......我有类似的东西

    public function setProject(Application\Models\Project $project) {
      ...
    }
    

    当我应该使用类似的东西时

    public function setProject(Project $project) {
      $this->project = $project;
    }
    

    改为

    【讨论】:

      猜你喜欢
      • 2014-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-09
      • 1970-01-01
      • 2013-06-11
      相关资源
      最近更新 更多