php测试代码:测试php函数的代码



今天忽然想到就写了段测试php代码

<?php

/**
* 参数$ParamList介绍说明
*
* 维索引是需要测试参数名第 2维每个元素是该参数需要测试可能值元素值可以为
*/

$ParamList = .gif' />(\"Param1\" => .gif' />(3,4,3,2,1),
\"Param2\" => .gif' />(3,2,5),
\"Param3\" => .gif' />(0,0.5,1,1.5));

// 测试
sysTestFunction(\"Test\", $ParamList);


// 待测试
function Test($Param1, $Param2, $Param3)
{
$Param1 . \"|\" . $Param2 . \"|\" . $Param3;
}


/**
* 自动测试
*
* @author 李玉鹏<[email protected]>
* @param $FunctionName 名称
* @param .gif' /> $ParamList 参数列表
* @ .gif' />
*/
function sysTestFunction($FunctionName, $ParamList)
{
(empty($FunctionName))
{
echo \"名不能为空\";
false;
}

(!is_.gif' />(current($ParamList)))
{
echo \"参数不是2维\";
false;
}

$TestParamList = sysCombineArray($ParamList);

echo \"开始测试\" . $FunctionName . \"<br />\";
foreach($TestParamList as $Key => $TestParamInfo)
{
echo \"开始测试第\" . $Key . \"组参数:<br />\";

foreach($TestParamInfo as $ParamKey => $Param)
{
${\"Param\" . $ParamKey} = $Param;
$TempParamList = \"$Param\" . $ParamKey;
(is_.gif' />($Param))
{
echo \"参数\" . $ParamKey . \"类型为:\";
echo \"<pre>\";
pr_r($Param);
}
(is_bool($Param))
{
echo \"参数\" . $ParamKey . \"类型为boll:\";
($Param)
{
echo \"true\";
}

{
echo \"false\";
}
}

{
echo \"参数\" . $ParamKey . \"类型为串或数字:\";
echo $Param;
}
echo \"<br />\";
}

$Params = join(\", \", $TempParamList);
un($TempParamList);

eval(\"$TestReturnResult = \" . $FunctionName . \"(\" . $Params . \");\");


(is_.gif' />($TestReturnResult))
{
echo \"返回:<pre>\";
pr_r($TestReturnResult);
}
(is_bool($TestReturnResult))
{
($TestReturnResult)
{
echo \"返回true\";
}

{
echo \"返回false\";
}
}

{
echo \"返回数字或串:\" . $TestReturnResult;
}
echo \"<br /><br />\";
}
}

/**
* 计算组合
*
* @author 李玉鹏<[email protected]>
* @param .gif' /> $CombinList 待排列组合2维
* @ .gif' /> 组合后
*/
function sysCombineArray($CombinList)
{
(!is_.gif' />(current($CombinList)))
{
echo \"参数不是2维\";
false;
}

/* 计算C(a,1) * C(b, 1) * ... * C(n, 1)值 */
$CombineCount = 1;
foreach($CombinList as $Key => $Value)
{
$CombineCount *= count($Value);
}

$RepeatTime = $CombineCount;
foreach($CombinList as $ClassNo => $ParamList)
{
// $ParamList中元素在拆分成组合后纵向出现最大重复次数
$RepeatTime = $RepeatTime / count($ParamList);

$StartPosition = 1;

foreach($ParamList as $Param)
{
$TempStartPosition = $StartPosition;

$SpaceCount = $CombineCount / count($ParamList) / $RepeatTime;

for($J = 1; $J <= $SpaceCount; $J )
{
for($I = 0; $I < $RepeatTime; $I )
{
$Result[$TempStartPosition + $I][$ClassNo] = $Param;
}
$TempStartPosition $RepeatTime * count($ParamList);
}
$StartPosition $RepeatTime;
}
}

$Result;
}
?>

Tags:  测试函数 二次函数测试题 php的函数手册 php测试代码

延伸阅读

最新评论

发表评论