发表日期: 2021-04-26 14:06:02 浏览次数:95
东海网站制作【东海网站优化】东海建网站、东海微信公众号运营、东海网页设计、东海微信小程序商城
东海县,隶属于江苏省连云港市,素有世界水晶之都、中国温泉之乡之称,是全国首批沿海开放县、新亚欧大陆桥西行第一县,淮海经济圈、长三角经济圈、新亚欧大陆桥经济走廊交叉辐射区。 [1]
东海县位于江苏省东北部,地处江苏、山东两省交界处,东濒黄海,西接彭城,南依江淮,北界齐鲁;北至西北与山东省临沭县、郯城县相连,东与连云港海州区、赣榆区接壤,南与沭阳县交界,西与新沂市相依;全县总面积2037平方公里,人口124万,辖19个乡镇(场)、2个街道、1个省级经济开发区、1个省级高新区和1个省级旅游度假区。 [2]
东海县资源丰富、特色鲜明,拥有“石、泉、湖、井、画”等五张特色名片,先后被评为全国粮食生产先进县、全国科技进步考核先进县、国家卫生县城、国家级生态县、全国文化先进县、中国观赏石(水晶)之乡、江苏省级园林城市、百湖之县、中国民间艺术之乡等美誉,先后培养出南朝诗人鲍照、现代散文家朱自清、当代版画家彦涵等历史文化名人。 [3]
2016年11月,东海被国家旅游局评为第二批国家全域旅游示范区。2018年10月,东海县入选“综合实力百强县”、 [4] 全国投资潜力百强县市、 [5] 全国绿色发展百强县市、全国新型城镇化质量百强县市。2019年3月,被列为第一批革命文物保护利用片区分县名单。2019年7月,被列为国家知识产权强县工程示范县(区)。 [6] 2019年10月8日,被评为2019年度全国综合实力百强县市。2020中国夏季休闲百佳县市。 [7] 2020年5月,被国家发展改革委列为县城新型城镇化建设示范名单。
phalapi-buildtest命令还有一些很有趣的功能。单元测试可按照构建-执行-验证的模式来编写,所以使用phalapi-buildtest生成的骨架代码,除了会生成执行环节的代码外,还可以生成构建和验证的代码。让我们来看一些具体的示例。
继续来看一下获取商品快照信息接口服务的领域层的实现,可以看到之前的代码是这样的。
// $ vim ./Shop/Domain/Goods.php <?phpclass Domain_Goods { public function snapshot($goodsId) { $model = new Model_Goods(); $info = $model->getSnapshot($goodsId); if (empty($info) || $info['goods_price'] <= 0) { return array(); } return $info; }}复制代码
暂且先不关注这里具体的实现。这里需要一个没有缺省值的$goodsId
参数,并且返回的是一个数组。phalapi-buildtest命令会自动识别参数列表,以及使用参数缺省值填充,但对于返回值的类型验证,则需要依据成员函数的@return
注解。为此,我们可以先添加返回类型为数组的注解。
/** * @return array 快照信息 */ public function snapshot($goodsId) {复制代码
随后,根据phalapi-buildtest命令的使用说明,为Domain_Goods生成单元测试骨架代码,并保存到对应的测试目录。这一次,让我们先进入Shop项目的Tests目录,再使用命令,因为通常情况下使用单元测试时我们都是在此目录下的。可以看到,所在目录位置对phalapi-buildtest命令的使用是不影响的。
Tests$ ../../PhalApi/phalapi-buildtest ../Domain/Goods.php Domain_Goods复制代码
籍此机会,顺便再来分解下phalapi-buildtest命令的使用过程。对于待测试的类是独立的类时,即不继承于其他类,则可以忽略第三个参数bootstrap,因为这里不需要用到框架的自动加载。同时,在保存生成的骨架代码前,可以先预览一下所生成的代码是否正确。在执行完上面这行命令后,可以看到类似这样的输出。
<?php/** * PhpUnderControl_DomainGoods_Test * * 针对 ../Domain/Goods.php Domain_Goods 类的PHPUnit单元测试 * * @author: dogstar 20170510 *///require_once dirname(__FILE__) . '/test_env.php';if (!class_exists('Domain_Goods')) { require dirname(__FILE__) . '/../Domain/Goods.php';}class PhpUnderControl_DomainGoods_Test extends PHPUnit_Framework_TestCase{ ... ...复制代码
预览确认生成的骨架代码没问题后,再重定向保存到测试文件。
Tests$ ../../PhalApi/phalapi-buildtest ../Domain/Goods.php Domain_Goods > ./Domain/Domain_Goods_Test.php复制代码
测试文件名为待测试的类名,加上“_Test.php”后缀。保存后,记得再适当调整一下test_env.php文件的引入路径。
// Tests$ vim ./Domain/Domain_Goods_Test.phprequire_once dirname(__FILE__) . '/../test_env.php';复制代码
然后,执行一下此测试文件,可以看到是可以正常执行并通过测试的。之所以通常,是因为在找不到对应的商品信息时,默认返回空数组。
Tests$ phpunit ./Domain/Domain_Goods_Test.php PHPUnit 4.3.4 by Sebastian Bergmann..Time: 35 ms, Memory: 6.50MbOK (1 test, 1 assertion)复制代码
再回头看一下这里生成的骨架代码,看下最终生成了哪些构建的代码,又生成了哪些验证的代码。
// Tests$ vim ./Domain/Domain_Goods_Test.php public function testSnapshot() { $goodsId = ''; $rs = $this->domainGoods->snapshot($goodsId); $this->assertTrue(is_array($rs)); }复制代码
由于$goodsId
参数没有缺省值,所以这里给了空字符串,一来不管参数是数值还是字符串都方便填充测试数据,二来不会导致生成的代码语法上出错。在最后,还进行了简单的断言,对Domain_Goods::snapshot($goodsId)
方法返回值的类型进行了检测,判断是否为期望的数组类型。是不是觉得很有趣?你也可以亲自动手,试下参数带有缺省值的情况。
phalapi-buildtest命令除了能根据参数列表生成构建代码,根据@return
注解生成类型断言代码外,还可以根据@testcase
注解生成对应的测试用例代码。@testcase
注解的格式是:@testcase 期望返回结果 参数1,参数2,参数3 ...
,第一个是期望返回的结果,后面是提供给待测试函数的参数列表,用英文逗号分割。目前此方式适合用于参数和返回值是基本类型的场景。由于上面商品快照返回的类型是数组,非基本类型,为了演示@testcase
注解的效果,让我们来看另一个示例。
假如我们现在有一个实现了加法运算的简单计算器类,并通过@testcase
注解添加了两组测试用例,分别是2 = 1 + 1
和-5 = -10 + 5
。实现代码和注释如下。
<?phpclass Calculator { /** * 求两数和 * * @testcase 2 1,1 * @testcase -5 -10,5 * @return int */ public function add($left, $right) { return $left + $right; }}复制代码
使用phalapi-buildtest命令生成骨架代码后,可以发现除了下面默认的测试用例外,还根据@testcase
注解生成了两个测试用例。
public function testAdd() { $left = ''; $right = ''; $rs = $this->calculator->add($left, $right); $this->assertTrue(is_int($rs)); }复制代码
根据@testcase 2 1,1
注释生成的测试用例是:
public function testAddCase0() { $rs = $this->calculator->add(1,1); $this->assertEquals(2, $rs); }
备案号: 苏ICP备11067224号
CopyRight © 2011 书生商友信息科技 All Right Reserved
24小时服务热线:400-111-6878 E-MAIL:1120768800@qq.com QQ:1120768800
网址: https://www.768800.com 网站建设:上往建站
关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|
企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|
400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 苏州殡葬一条龙| 朝阳殡葬| 苏州殡葬服务|
欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系
服务热线:400-111-6878