0

我正在以模块化方式开发应用程序,也就是说,我有一个接口,我想对实现该接口的所有类进行单元测试,所以我创建了一个实现了所有逻辑的抽象类(测试是否该类实际上正在实现接口,测试返回值等等)但是当我尝试继承抽象类时,我得到一个class not found exception我正在使用命名空间,所以我的目录结构是这样的

namespaceA
|->abstract.php
|->namespaceB
    |->pluginTest.php

所以我的 pluginTest.php 类定义是这样的

namespace namespaceA\namespaceB;    
use namespaceA\Abstract;

class pluginTest extends Abstract

显然在我的抽象类中有 namespaceA 定义,我也尝试手动包含文件(include("../Abstract.php"))但它失败了,但是由于我已经使用了一段时间的自动加载,也许我不记得如何手动导入,我也已尝试使用类 ( using namespaceA\Abstract as X) 的别名并在 namespaceA 之前放置一个\但没有任何效果,我做错了什么,或者我缺少什么

==编辑==

我设法使用加载类

include __DIR__ ."/../Abstract.php";

但仍然没有自动加载

4

1 回答 1

0

我解决了我只需要像这样将测试目录添加到module.php

public function getAutoloaderConfig()
    {
        return array(
            'Zend\Loader\ClassMapAutoloader' => array(
                __DIR__ . '/autoload_classmap.php',
            ),
            'Zend\Loader\StandardAutoloader' => array(
                'namespaces' => array(
                    __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
                    'namespaceA' => __DIR__ . '/test/' .'namespaceA', //added this line
                ),
            ),
        );
    }
于 2013-09-09T14:12:15.117 回答