php教程 php手册 测试php函数的方法

测试php函数的方法

Jun 13, 2016 am 09:30 AM
PHP 함수 시험

今天忽然想到的,就写了一段测试php函数的代码。

复制代码 代码如下:


/**
 * 参数数组$ParamList说明
 *
 * 数组的第一维索引是需要测试的函数的参数名,第二维的每个元素是该参数需要测试的可能值,元素值可以为数组。
 */
$ParamList = array("Param1" => array(3,4,3,2,1),
                   "Param2" => array(3,2,5),
                   "Param3" => array(0,0.5,1,1.5));
// 测试函数
sysTestFunction("Test", $ParamList);

// 待测试的函数
function Test($Param1, $Param2, $Param3)
{
    return $Param1 . "|" . $Param2 . "|" . $Param3;
}

/**
 * 自动测试
 *
 * @param  string  $FunctionName  函数名称
 * @param  array   $ParamList     参数列表
 * @return array
 */
function sysTestFunction($FunctionName, $ParamList)
{
    if(empty($FunctionName))
    {
        echo "函数名不能为空";
        return false;
    }
    if(!is_array(current($ParamList)))
    {
        echo "参数不是2维数组";
        return false;
    }
    $TestParamList = sysCombineArray($ParamList);
    echo "开始测试函数" . $FunctionName . "
";
    foreach($TestParamList as $Key => $TestParamInfo)
    {
        echo "开始测试第" . $Key . "组参数:
";
        foreach($TestParamInfo as $ParamKey => $Param)
        {
            ${"Param" . $ParamKey} = $Param;
            $TempParamList[] = "$Param" . $ParamKey;
            if(is_array($Param))
            {
                echo "参数" . $ParamKey . ",类型为数组:";
                echo "

";<br>                print_r($Param);<br>            }<br>            elseif(is_bool($Param))<br>            {<br>                echo "参数" . $ParamKey . ",类型为boll:";<br>                if($Param)<br>                {<br>                    echo "true";<br>                }<br>                else<br>                {<br>                    echo "false";<br>                }<br>            }<br>            else<br>            {<br>                echo "参数" . $ParamKey . ",类型为字符串或数字:";<br>                echo $Param;<br>            }<br>            echo "<br>";<br>        }<br>        $Params = join(", ", $TempParamList);<br>        unset($TempParamList);<br>        eval("$TestReturnResult = " . $FunctionName . "(" . $Params . ");");<br>        if(is_array($TestReturnResult))<br>        {<br>            echo "函数返回数组:<pre class="brush:php;toolbar:false">";<br>            print_r($TestReturnResult);<br>        }<br>        elseif(is_bool($TestReturnResult))<br>        {<br>            if($TestReturnResult)<br>            {<br>                echo "函数返回true";<br>            }<br>            else<br>            {<br>                echo "函数返回false";<br>            }<br>        }<br>        else<br>        {<br>            echo "函数返回数字或字符串:" . $TestReturnResult;<br>        }<br>        echo "<br><br>";<br>    }<br>}<br>/**<br> * 计算组合的函数<br> *<br> * @param  array $CombinList 待排列组合的2维数组<br> * @return array             组合后的数组<br> */<br>function sysCombineArray($CombinList)<br>{<br>    if(!is_array(current($CombinList)))<br>    {<br>        echo "参数不是2维数组";<br>        return false;<br>    }<br>    /* 计算C(a,1) * C(b, 1) * ... * C(n, 1)的值 */<br>    $CombineCount = 1;<br>    foreach($CombinList as $Key => $Value)<br>    {<br>        $CombineCount *= count($Value);<br>    }<br>    $RepeatTime = $CombineCount;<br>    foreach($CombinList as $ClassNo => $ParamList)<br>    {<br>        // $ParamList中的元素在拆分成组合后纵向出现的最大重复次数<br>        $RepeatTime = $RepeatTime / count($ParamList);<br>        $StartPosition = 1;<br>        foreach($ParamList as $Param)<br>        {<br>            $TempStartPosition = $StartPosition;<br>            $SpaceCount = $CombineCount / count($ParamList) / $RepeatTime;<br>            for($J = 1; $J             {<br>                for($I = 0; $I                 {<br>                   $Result[$TempStartPosition + $I][$ClassNo] = $Param;<br>                }<br>                $TempStartPosition += $RepeatTime * count($ParamList);<br>            }<br>            $StartPosition += $RepeatTime;<br>        }<br>    }<br>    return $Result;<br>}<br>?><br>

로그인 후 복사
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Furmark에 대해 어떻게 생각하시나요? - Furmark는 어떻게 자격을 갖춘 것으로 간주됩니까? Furmark에 대해 어떻게 생각하시나요? - Furmark는 어떻게 자격을 갖춘 것으로 간주됩니까? Mar 19, 2024 am 09:25 AM

Furmark에 대해 어떻게 생각하시나요? 1. 메인 인터페이스에서 "실행 모드"와 "디스플레이 모드"를 설정하고 "테스트 모드"도 조정한 후 "시작" 버튼을 클릭하세요. 2. 잠시 기다리면 그래픽 카드의 다양한 매개변수를 포함한 테스트 결과가 표시됩니다. Furmark는 어떻게 자격을 갖추었나요? 1. 푸르마크 베이킹 머신을 사용하여 약 30분 동안 결과를 확인합니다. 기본적으로 85도 정도, 최고 온도는 87도, 실내 온도는 19도입니다. 대형 섀시에 섀시 팬 포트 5개 전면 2개, 상단 2개, 후면 1개로 구성됐으나 팬은 1개만 설치됐다. 모든 액세서리는 오버클럭되지 않습니다. 2. 정상적인 상황에서 그래픽 카드의 정상 온도는 "30-85℃" 사이여야 합니다. 3. 주변온도가 너무 높은 여름에도 정상온도는 "50~85℃"

새로운 Xianxia 모험에 참여하세요! 'Zhu Xian 2' 'Wuwei Test' 사전 다운로드가 가능합니다 새로운 Xianxia 모험에 참여하세요! 'Zhu Xian 2' 'Wuwei Test' 사전 다운로드가 가능합니다 Apr 22, 2024 pm 12:50 PM

새로운 판타지 요정 MMORPG '주선2'의 '무작용 테스트'가 4월 23일 출시된다. 원작으로부터 수천 년이 지난 주선 대륙에서는 어떤 새로운 요정 모험 이야기가 펼쳐질 것인가? 육계선불세계, 불멸수련을 위한 전임 학원, 불멸수련의 자유로운 삶, 불멸세계의 온갖 즐거움이 불멸친구들이 직접 탐험하는 것을 기다리고 있습니다! 이제 'Wuwei 테스트' 사전 다운로드가 공개되었습니다. 요정 친구들은 공식 웹사이트에 접속하여 다운로드할 수 있습니다. 서버가 출시되기 전에는 게임 서버에 로그인할 수 없습니다. 사전 다운로드 및 설치 후에는 활성화 코드를 사용할 수 있습니다. 완성 됐습니다. "Zhu Xian 2" "Inaction Test" 개장 시간: 4월 23일 10:00 - 5월 6일 23:59 Zhu Xian의 정통 속편 "Zhu Xian 2"의 새로운 요정 모험 장은 "Zhu Xian" 소설을 기반으로 합니다. 원작의 세계관을 바탕으로 게임 배경이 설정되었습니다.

국내 FPS의 새로운 왕! '델타 작전' 전장이 기대치를 뛰어넘는다 국내 FPS의 새로운 왕! '델타 작전' 전장이 기대치를 뛰어넘는다 Mar 07, 2024 am 09:37 AM

'오퍼레이션 델타'는 오늘(3월 7일) '코드네임: ZERO'라는 대규모 PC 테스트를 시작한다. 지난 주말 이 게임은 상하이에서 오프라인 플래시몹 체험행사를 진행했는데, 17173도 행운을 빌어 참여하게 됐다. 이번 시험은 지난 시험으로부터 불과 4개월여밖에 남지 않은 상황인데, 이 짧은 시간 안에 '델타 작전'이 어떤 새로운 볼거리와 놀라움을 선사할지 궁금증을 자아낸다. 4개월여 전 오프라인 테이스팅 세션과 첫 번째 베타 버전에서 'Operation Delta'를 경험했습니다. 당시 게임은 '위험한 액션' 모드만 열었습니다. 그러나 델타 작전은 당시로서는 이미 인상적이었습니다. 주요 제조사들이 모바일 게임 시장에 몰려드는 상황에서 국제 표준에 버금가는 FPS

다른 언어에서 기능 테스트와 적용 범위의 차이점은 무엇입니까? 다른 언어에서 기능 테스트와 적용 범위의 차이점은 무엇입니까? Apr 27, 2024 am 11:30 AM

기능 테스트는 블랙박스 및 화이트박스 테스트를 통해 기능 기능성을 검증하고, 코드 커버리지는 테스트 케이스에 포함된 코드 부분을 측정합니다. Python 및 Java와 같은 언어마다 테스트 프레임워크, 적용 범위 도구 및 기능이 다릅니다. 실제 사례에서는 기능 테스트 및 적용 범위 평가를 위해 Python의 Unittest 및 Coverage와 Java의 JUnit 및 JaCoCo를 사용하는 방법을 보여줍니다.

PHP 함수의 성능은 얼마나 되나요? PHP 함수의 성능은 얼마나 되나요? Apr 18, 2024 pm 06:45 PM

다양한 PHP 기능의 성능은 애플리케이션 효율성에 매우 중요합니다. 성능이 더 좋은 함수에는 echo 및 print가 포함되는 반면 str_replace, array_merge 및 file_get_contents와 같은 함수는 성능이 느립니다. 예를 들어, str_replace 함수는 문자열을 바꾸는 데 사용되며 보통의 성능을 갖는 반면 sprintf 함수는 문자열 형식을 지정하는 데 사용됩니다. 성능 분석에 따르면 하나의 예제를 실행하는 데 0.05밀리초밖에 걸리지 않아 함수가 잘 수행된다는 것을 증명합니다. 따라서 기능을 현명하게 사용하면 더 빠르고 효율적인 응용 프로그램을 만들 수 있습니다.

PHP Jenkins 101: CI/CD를 시작하는 유일한 방법 PHP Jenkins 101: CI/CD를 시작하는 유일한 방법 Mar 09, 2024 am 10:28 AM

소개 CI(지속적 통합) 및 CD(지속적 배포)는 팀이 고품질 소프트웨어를 더 빠르고 안정적으로 제공하는 데 도움이 되는 최신 소프트웨어 개발의 핵심 사례입니다. Jenkins는 빌드, 테스트 및 배포 프로세스를 자동화하는 인기 있는 오픈 소스 CI/CD 도구입니다. 이 문서에서는 PHP를 사용하여 Jenkins로 CI/CD 파이프라인을 설정하는 방법을 설명합니다. Jenkins 설정 Jenkins 설치: 공식 Jenkins 웹사이트에서 Jenkins를 다운로드하여 설치합니다. 프로젝트 생성: Jenkins 대시보드에서 새 프로젝트를 생성하고 PHP 프로젝트와 일치하도록 이름을 지정합니다. 소스 제어 구성: PHP 프로젝트의 git 저장소를 Jenkin으로 구성합니다.

Maven에서 테스트 케이스를 비활성화하는 방법은 무엇입니까? Maven에서 테스트 케이스를 비활성화하는 방법은 무엇입니까? Feb 26, 2024 am 09:57 AM

Maven은 Java 프로젝트 빌드, 종속성 관리 및 문서 게시와 같은 작업에 일반적으로 사용되는 오픈 소스 프로젝트 관리 도구입니다. 프로젝트 빌드에 Maven을 사용할 때 mvnpackage와 같은 명령을 실행할 때 테스트 단계를 무시하고 싶을 때가 있습니다. 이는 특히 프로토타입이나 테스트 환경을 빠르게 빌드해야 하는 경우 빌드 속도를 향상시킵니다. 이 기사에서는 특정 코드 예제를 사용하여 Maven에서 테스트 단계를 무시하는 방법을 자세히 설명합니다. 프로젝트 개발 중에 테스트가 종종 무시되는 이유

PHP 이미지 처리 기능을 이용한 이미지 편집 및 처리 기능 구현 방법 요약 PHP 이미지 처리 기능을 이용한 이미지 편집 및 처리 기능 구현 방법 요약 Nov 20, 2023 pm 12:31 PM

PHP 이미지 처리 기능은 이미지를 처리하고 편집하는 데 특별히 사용되는 기능 세트로 개발자에게 풍부한 이미지 처리 기능을 제공합니다. 이러한 기능을 통해 개발자는 자르기, 크기 조정, 회전, 워터마크 추가 등의 작업을 구현하여 다양한 이미지 처리 요구 사항을 충족할 수 있습니다. 먼저 PHP 이미지 처리 기능을 사용하여 이미지 자르기 기능을 구현하는 방법을 소개하겠습니다. PHP는 이미지를 자르는 데 사용할 수 있는 imagecrop() 함수를 제공합니다. 자르기 영역의 좌표와 크기를 전달하여 이미지를 자를 수 있습니다.

See all articles