PhalconPHP和phpunit

PhalconPHP和phpunit,php,phpunit,phalcon,Php,Phpunit,Phalcon,我一直在跟踪Phulcon建立phpunit。我让这个例子起作用了 但是,我现在想实际使用它并测试我自己的类,要做到这一点,我知道我需要在加载程序中注册目录,但不是重复配置中已经定义的目录,而是希望将配置包含在php单元测试帮助器类中(来自“phalcon project”命令)。这听起来很简单,但根本不是 我是否必须添加其他代码才能访问$config 我是否正确地假设文档中缺少大量关于测试您自己的类的代码,或者,在遵循文档之后它是否可以直接工作?我已经尝试自己实现了这一点。下面是一个实现示例的

我一直在跟踪Phulcon建立phpunit。我让这个例子起作用了

但是,我现在想实际使用它并测试我自己的类,要做到这一点,我知道我需要在加载程序中注册目录,但不是重复配置中已经定义的目录,而是希望将配置包含在php单元测试帮助器类中(来自“phalcon project”命令)。这听起来很简单,但根本不是

我是否必须添加其他代码才能访问$config


我是否正确地假设文档中缺少大量关于测试您自己的类的代码,或者,在遵循文档之后它是否可以直接工作?

我已经尝试自己实现了这一点。下面是一个实现示例的基本思想:

如果您将加载程序外部化为

<?php

$loader = new \Phalcon\Loader();

/**
 * We're a registering a set of directories taken from the configuration file
 */
$loader->registerDirs(
    [
        $config->application->controllersDir,
        $config->application->modelsDir
    ]
)->register();
如果您像文档中提到的那样初始化一个新的DI容器,那么您将能够在测试助手中重用相同的加载程序

为了给大家一个大局,我推出了一个由devtools创建的开箱即用的应用程序,让大家看看

加载器:

入口点:
包括根路径。“/../app/config/loader.php”
是我尝试的第一件事,这导致在尝试访问config值时,第10行的/var/www/api/app/config/loader.PHP中出现
PHP注意:未定义变量:config。如果我添加
根路径'//app/models'
到TestHelper中定义的$loader->registerDirs,最后出现错误
Phalcon\Di\Exception:在依赖项注入容器中找不到服务“modelsManager”
我必须对文档示例进行的一个区别是Di工厂创建的顺序。此时,我能够在这里对其进行分类,我再次查看了一下,并设法使其启动并运行,但现在在依赖项注入容器中找不到modelsManager
,为了回答我自己的评论,孵化器包含一个ModelTestCase抽象类,用于处理模型管理器,只需确保在registerDirs中包含您的模型目录
include ROOT_PATH . "/../app/config/loader.php";