PHP单元测试使用手册
admin
2023-06-29 13:43:18
0

1 单元测试简介

1.1 单元测试

单元测试:是指对软件中的最小可测试单元进行检查和验证。(单一模块、一个过程、一个函数等)

1.2 单元测试范围和目标

    单元测试包含计划阶段、设计阶段、实现阶段和执行阶段。起始于详细设计,主要是各模块的源代码进行测试,直到单元阶段结束后终止。此时主要是PHP单元测试。

单元测试的目标是隔离程序部件并证明这些单个部件是正确的。一个单元测试提供了代码片断需要满足的严密的书面规约。

2 安装与使用

2.1 安装PHPUnit

1、在Linux中下载PHPUnit  wget https://phar.phpunit.de/phpunit.phar

2、添加执行权限 chmod +x phpunit.phar

3更改路径mv phpunit.phar  /usr/local/bin/phpunit

4、查看phpunit版本 phpunit --version


2.2 使用

1、如有详细设计文档,先仔细阅读详细设计文档;针对需要测试的PHP代码先进行静态走读(查看是否正规编写、查看是否有逻辑错误、查看是否有未实现的功能等。)

2、编写测试脚本(以xxx.php为例)

1)首先是调用xxx配置文件以及调用PHPunit


PHP单元测试使用手册

有些是这样的:
/**************测试加载******************/
const CONFIG_ENV = 'office';

// include_once __DIR__."/../../sdk/Autoload.php";
// include_once "ApiHelper.php";
include('/data/wuheyou_php/trunk/sdk/Autoload.php');
ImportModule('home');

2)然后测试模块加载类

PHP单元测试使用手册


3)最后编写测试用例(根据php代码,分析等,传入正确参数、错误参数、缺失参数、多余参数、路径覆盖、条件判断等)

PHP单元测试使用手册

访问私有函数
	public function testuserTechDonateResource(){
		print("资源争夺战个人科技贡献");
		for ($i=0; $i<=20; $i++){
			//资源争夺战 8基础战力,9幸运倍率,10守城加成,11宽度
			$boss = new GangTech(144540,136);
			$method = new ReflectionMethod('GangTech','userTechDonateResource');
			$method->setAccessible(true);
			$tech_id = 9;
			$type = 3;//资源争夺战
			$result = $method->invoke($boss,$tech_id,$type);
			var_dump($result);
			$this->assertArraySubset(["result"=>"true"],array("result"=>"true","code"=>0,"msg"=>"成功","data"=>array("next_score"=>60,"star"=>3)));
			}
	}
例子:1
	public function testPublishGuessodds(){
		echo "odds为负数!\n";
		$guess = new GameGuess();
		$uid = 186;
		$guessdesc = "这是我的猜猜猜22222";
		//$options = array(array('option_name'=>'我是谁', 'odds'=>1.6),array('option_name'=>'我是谁2', 'odds'=>1.5));//传入多组
		$options[] = array('option_name'=>'是是是是是', 'odds'=>-1.6);//传入单组
		$aborttime = '1449049541';  
		$result = $guess->publishGuess($uid,$guessdesc,$options,$aborttime);
		// var_dump($result);
		$this->assertEquals('赔率设置不合法',$result->msg);
	}
例子2:
	public function testbestlist(){
		print ("\n 城市转转转押注情况列表\n");
		$list = new GameCitytrun();
		$data = array('uid' =>183 , 'gtypeid' =>20 );
		$result = $list->betList($data);
		var_dump($result);
		$this->assertTrue(true);
	}	
例子3:
	public function testdoSpin(){
		print ("摇奖生成随机数,作为×××的布局\n");
		$DSp = new GameBetTiger();
		$method = new ReflectionMethod('GameBetTiger','doSpin');
		$method->setAccessible(true);
		$res_num = array();
		$this->res_num = array(
            "1" => Array
                (
                    "11" => 4,
                    "21" => 2,
                    "31" => 5
                ),
            "2" => Array
                (
                    "12" => 5,
                    "22" => 2,
                    "32" => 7
                ),
            "3" => Array
                (
                    "13" => 4,
					"23" => 2,
                    "33" => 4
                ),
            "4" => Array
                (
                    "14" => 2,
                    "24" => 2,
                    "34" => 9
                ),
            "5" => Array
                (
                    "15" => 2,
                    "25" => 5,
                    "35" => 8
                )
        );
		$result = $method->invoke($DSp);
		var_dump($this->res_num);        	

3、执行对比返回结果 phpunitxxx.php

1)  正确数据发送请求时,查看返回数据是否正确、是否会报错、数据库中是否正常插入数据、关闭相关数据库是否能正常工作等。

2)错误数据发送请求时,查看返回数据是否有异常处理、是否有报错、数据是否有异常、等。

3)发现BUG,在提交BUG指向相关开发并督促修复bug,只至关闭BUG。


相关内容

热门资讯

初一男生校门口遭群殴或失聪,教... 哥哥同学辱骂母亲,辽宁鞍山13岁少年在学校门口维护哥哥与人发生争执,随后数名同龄少年一拥而上对其实施...
演唱会大量邀请票被当众焚毁,警... 极目新闻记者 杜光然5月29日,网友发帖称,有人当众焚烧大量演唱会邀请票,视频定位于温岭市体育中心。...
多所高校撤销外语学院 人工智能的发展及其他因素的影响下,外语类专业面临挑战,近年来一些高校对外语学院进行调整、重组。近日,...
解放军少将质问日方:有没有资格... 【环球时报-环球网报道 记者 郭媛丹 苏雅瑄】 “殷鉴不远,今天的世界又处在新的十字路口,我们必须警...
《给阿嬷的情书》导演被网友二创... 《给阿嬷的情书》这段解读直接破防!网友二创还原木生守桥的画面,把邮差落水,弄丢写有真相的讣告信件,解...
伊朗最高领袖顾问批特朗普背弃外... 据凤凰卫视报道,美伊谈判前景不明,伊朗最高领袖顾问雷扎伊5月30日指责美国总统特朗普第三次背弃外交原...
免去南开大学陈某院长、中山大学... 刚刚,南开大学和中山大学发布情况通报。南开大学:免去陈某院长职务南开大学通报中指出,论文第一作者郑某...
绿色算力全栈AI平台在呼和浩特...   新华社呼和浩特5月30日电(记者侯维轶)30日,绿色算力全栈AI平台——内蒙古词元交易平台在内蒙...
北京太空智算研究院在北京亦庄成... 红星资本局5月30日消息,近日,北京太空智算研究院在北京经济技术开发区(简称“北京经开区”,又称“北...
第二届西部医学科技创新学术大会... 封面新闻记者 邱添 2026年5月30日,在第十个全国科技工作者日来临之际,一场汇聚医学前沿智慧与创...