0

私は、e コマース Web サイトである ecshop と呼ばれる、他の誰かのソース コードを使用する Web サイトに取り組んでいます。PHPUnit を使用してコードの単体テストを行いたいのですが、問題が発生しました。エラーは次のようになります。

C:\Users\maoqiuzi\Documents\Shanglian\XinTianDi\xintiandi\admin>phpunit --stderr wang_test.php Sebastian Bergmann による PHPUnit 3.7.27。

時間: 1.03 秒、メモリ: 6.75Mb

1 件のエラーがありました:

1) ShopTest::test_get_shop_name 未定義のインデックス: ecs

C:\Users\maoqiuzi\Documents\Shanglian\XinTianDi\xintiandi\includes\lib_common.ph p:564 C:\Users\maoqiuzi\Documents\Shanglian\XinTianDi\xintiandi\admin\includes\init.ph p:147 C: \Users\maoqiuzi\Documents\Shanglian\XinTianDi\xintiandi\admin\wang.php:10 C:\Users\maoqiuzi\Documents\Shanglian\XinTianDi\xintiandi\admin\wang_test.php:10

失敗!テスト: 1、アサーション: 0、エラー: 1。

wang_test.php のソースコード:

<?php
require_once("wang.php");
class ShopTest extends PHPUnit_Framework_TestCase
{
    public function test_get_shop_name()
    {
        $shop = new Wang();
        $first_row_of_shop_list = $shop->get_shop_list();
    }
}

wang.php のソースコード:

<?php 
class Wang
{
    private $exchange;
        function get_shop_list()
        {
            define("IN_ECS", 1);
            require(dirname(__FILE__).'/includes/init.php');
            $this->exchange = new exchange($GLOBALS['ecs']->table('shop'), $GLOBALS['db'], 'shop_id', 'shop_name');
            $sql = "SELECT * FROM " . $GLOBALS['ecs']->table('shop');
            $shop_list = $GLOBALS['db']->getAll($sql);
            if($shop_list != array())
                return $shop_list;
            else
                return array();
        }
}

init.php のコード

require(ROOT_PATH . 'includes/lib_common.php');
class ECS //line 82
{
    var $db_name = '';
    var $prefix  = 'ecs_';

    function ECS($db_name, $prefix)
    {
        $this->db_name = $db_name;
        $this->prefix  = $prefix;
    }
...
}
...
$ecs = new ECS($db_name, $prefix); // line 114
... // other initialization codes here
$_CFG = load_config(); //line 147

lib_common.php のコード

function load_config()
{
    $arr = array();

    $data = read_static_cache('shop_config');
    if ($data === false)
    {
        $sql = 'SELECT code, value FROM ' . $GLOBALS['ecs']->table('shop_config') . ' WHERE parent_id > 0';
        $res = $GLOBALS['db']->getAll($sql);
...
}

私はこれに何日も取り組んできましたが、非常にイライラしました。誰かが私を助けてくれることを願っています! ありがとう!!!

4

2 に答える 2