Это вопрос о модульном тесте PHP, который дает мне ошибку «Класс не найден».
Фон
Я использую Zend Studio 10.5 для разработки приложения Zend Framework 2. У меня загружено несколько модулей, в том числе ZfcUser
и BjyAuthorize
FedcoUser — это модуль с Controller Guard, который использует правила защиты BjyAuthorize:
<?php
namespace FedcoUser\Controller;
use Zend\View\Model\ViewModel;
use ZfcUser\Controller\UserController as ZfcUserController;
class MachinistController extends ZfcUserController
{
public function indexAction()
{
if (!$this->zfcUserAuthentication()->hasIdentity()) {
return $this->redirect()->toRoute($this->getOptions()->getLoginRedirectRoute());
}
return new ViewModel();
}
}
Используя собственные меню Zend Studio 10.5, я создал тестовый пример для контроллера выше. Когда я запускаю его, я получаю следующую ошибку:
Debug Error: FedcoUser/Controller/MachinistController.php line 8 - Class 'ZfcUser\Controller\UserController' not found
Я предполагаю, что каким-то образом автозагрузчик для PHPUnit не может понять, где находится класс, потому что класс, который он не может найти, находится в
vendor/zf-commons/zfc-user/src/ZfcUser/Controller/UserController.php
Я еще не знаком с тем, как работает PHPUnit, чтобы исправить эту ошибку. Есть ли у PHPUnit автозагрузчик? В папке /test/
моего модуля есть файлы с именами bootstrap.php
, phpunit.xml
и TestConfiguration.php
, если это поможет. Я пытался случайным образом добавлять различные модули и пути к файлу TestConfiguration.php
, как показано ниже, но это не помогло:
$additionalModulePaths = array(
'ZfcUser' => realpath('vendor/zf-commons/zfc-user/src/ZfcUser/Controller/UserController.php'),
);
Вы можете помочь?