小编uoz*_*Aho的帖子

如何对Joomla 2.5组件进行单元测试

有人可以举例说明如何对Joomla 2.5组件进行单元测试吗?我正在研究这个joomla mvc组件示例,它不包含单元测试,我无法在任何地方找到完整的示例.我的主要问题是:

  • 在哪里放置组件测试代码
  • 如何运行组件单元测试
  • 我的测试代码是否正确

Joomla文档似乎不完整和支离破碎 - 我已经阅读了我可以在单元测试中找到的内容(由于低代表而无法发布链接),这似乎是关于测试Joomla本身而不是扩展.我发现的最接近的是这个,我是基于我的虚拟测试.

到目前为止我做了什么

组件目录结构:

  • 你好,世界/
    • 管理员/
      • ...
      • 测试/
        • bootstrap.php中
        • phpunit.xml
        • modelHelloWorldsTest.php
    • 现场/
      • ...
    • helloworld.xml

要运行测试,我将组件安装/复制到我的Joomla安装.然后我从~joomla/administration/components/com_helloworld/tests运行以下命令:

php phpunit-4.2.phar --bootstrap bootstrap.php .
Run Code Online (Sandbox Code Playgroud)

从我收到

Fatal error: Class 'ContentController' not found in C:\inetpub\wwwroot\ws_cairnstest\administrator\components\com_helloworld\tests\modelsHelloWorldsTest.php on line 5
Run Code Online (Sandbox Code Playgroud)

bootstrap.php中:

<?php
error_reporting(E_ALL);

define('_JEXEC', 1);
define('BASEPATH',realpath(dirname(__FILE__).'/../../'));
define('JOOMLA_PATH',realpath(dirname(__FILE__).'/../../../../../'));
define('JOOMLA_ADMIN_PATH',realpath(dirname(__FILE__).'/../../../../'));
$_SERVER['HTTP_HOST'] = 'localhost';
$_SERVER['REQUEST_METHOD'] = 'GET';

if (file_exists(JOOMLA_ADMIN_PATH . '/defines.php'))
{
    include_once JOOMLA_ADMIN_PATH . '/defines.php';
}

if (!defined('_JDEFINES'))
{
    define('JPATH_BASE', JOOMLA_ADMIN_PATH);
    require_once JPATH_BASE . '/includes/defines.php';
}

require_once JPATH_BASE . …
Run Code Online (Sandbox Code Playgroud)

php joomla unit-testing joomla2.5

11
推荐指数
1
解决办法
700
查看次数

标签 统计

joomla ×1

joomla2.5 ×1

php ×1

unit-testing ×1