私は、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);
...
}
私はこれに何日も取り組んできましたが、非常にイライラしました。誰かが私を助けてくれることを願っています! ありがとう!!!