【建站服务】扬中400电话申请开通【扬中企业网站建设】扬中微信公众号小程序开发运营价格、扬中微信公众号APP软件客户端设计运营、扬中网页页面设计公司费用、扬中公司网站制作方案流程改版维护大概需要多少钱
作者: 风兰 . 阅读量: 4 . 发表时间:2022-09-20 15:24:46
上往建站提供服务器空间服务商,百度快照排名,网站托管,百度推广运营,致力于设计外包服务与源代码定制开发,360推广,搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。
扬中400电话申请开通【扬中企业网站建设】扬中微信公众号小程序开发运营价格、扬中微信公众号APP软件客户端设计运营、扬中网页页面设计公司费用、扬中公司网站制作方案流程改版维护大概需要多少钱
扬中,江苏省辖县级市,由镇江市代管。位于镇江市东部江心,黄金水道——长江中下游,苏南现代化建设示范区内,是南京都市圈成员县级城市,“北面与扬州、泰州隔江相望,南面与镇江、常州一衣带水。全市由太平洲、中心沙、西沙岛、雷公岛四个江岛组成,总面积332平方公里,其中陆地面积228平方公里。扬中城市建成区面积13.9平方公里,滨江新城规划建设面积6.8平方公里,城镇化率达64.26%。 [1] 拥有可开发深水岸线54公里。 [1] 下辖4个镇、2个街道 [2] 、扬中经开区和扬中高新区,总人口34万,在镇江发展全局中具有重要地位。
扬中产业特色鲜明,是远近闻名的“电气岛”、“光伏岛”,“长江制造业走廊”其中电气领域更是中国最大的工程电气原料市场,并被授予“中国工程电气名城”,扬中先后荣获“国家卫生城市"、“国家生态市”和“国家园林城市”,“国家环保模范城市”通过国家级考核验收。 [2] 2019年人均地区生产总值14.15万元 [3] 。连续两年列镇江市高质量发展考核一等奖第一名,位列2019年度“全国中小城市综合实力百强县(市)”第23位。 [3]
扬中农村别墅特色鲜明,西班牙驻华参赞夫人克里斯蒂娜夫人以及摩洛哥驻华公使等28个国家的60余位驻华使节曾到此参观留念。
扬中的城市精神是“上善若水,自强不息。”
// Step 2. 执行 $rs = PhalApi_Helper_TestRunner::go($url, $params);复制代码
这样,便可以在服务端模拟进行一次接口的请求调度,注意这里是在服务端进行的接口请求,而不是客户端。这样的好处是可以进行白盒测试,则不是黑盒测试,从而可以得出代码测试覆盖率。
最后,是验证。在对接口返回的结果中,我们可以这样依次进行正确性的验证:先验证接口返回的格式是否正确,有无字段遗漏;再返回的业务数据是否正确。
// Step 3. 验证
$this->assertEquals(1, $rs['id']);
$this->assertArrayHasKey('content', $rs);复制代码由于测试环境的数据变动频繁,所以我们可以针对个别的接口进行更精确的验证,而对类似列表获取这样的大批量的数据,则校验其结构格式。除此之外,还有一种情况也是需要纳入检验,即除了上面的正常请求情况下的异常请求。
当获取评论的接口服务功能未具体实现时,运行此单元测试,应该是失败的,并且失败信息提示评论ID不等于期望的1。
1) PhpUnderControl_ApiComment_Test::testGetFailed asserting that null matches expected 1.复制代码
到了这一步,我们的意图已经很明确,那就是能正常获取到评论的内容并返回。
4、在意图导向下完成具体功能开发,让测试通过
接下来,就是如何具体实现此获取评论的功能。假设我们的评论内容存在MySQL数据库中,同时为了方便演示下一步的重构,这里暂时先在Api层完成全部的功能开发。但请注意,再一次强调,不应该把全部的功能都塞在Api层,而是应该根据ADM分层结构进行合理的职责划分和分配。
由于需要使用到MySQL数据库,因此这里稍微做一下准备工作。首先是数据库的创建与配置,然后创建评论数据库表和添加一些测试数据。以下是相应的SQl语句。
CREATE TABLE `pa_comment` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '评论ID',
`content` varchar(1024) DEFAULT '' COMMENT '评论内容',
PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;INSERT INTO `pa_comment` VALUES ('1', '欢迎使用PhalApi开源接口框架!');复制代码准备好数据库相关的工作后,便可以使用NotORM提供的接口进行对数据库的数据获取。由于这里采用是不恰当的开发方式,需要使用全局的NotORM实例进行操作数据库,因此最初丑陋的实现代码是:
// $ vim ./Shop/Api/Comment.php
public function get() {
return DI()->notorm->comment->where('id', $this->id)->fetchRow();
}复制代码虽然丑陋,但也简单。
此时,重新执行一下单元测试,可以看到是通过的了!
Tests$ phpunit ./Api/Api_Comment_Test.php ... ...OK (2 tests, 2 assertions)复制代码
这时,也可以通过正常正式的方式,访问此获取评论的接口服务,看下是否真的已经可以工作并提供真实的数据。

图4-3 初步实现获取评论的运行效果
但故事到此就结束了吗?如果只是单纯编写一个示例代码,差不多到此可暂告生段落。但如果我们开发编写的是用于提供商业服务,最终会投入市场使用的产品代码,那么这仅仅是一个开始。下面会继续进行讲解。
5、进行适当的重构,追求更高的代码质量
当功能开发完成后,也通常单元测试后,就可以考虑进行重构了。这时需要重构的内容,可以有以下这些方面进行考虑。
是否已按ADM分层模式进行开发?
是否已满足非功能性的要求?例如是否需要添加缓存?
是否已处理异常的情况?例如获取的数据不存在怎么办?
是否已抽离与业务无关、公共的代码?例如提取重复的实现,封装到扩展类库。
是否忆消除发现的代码异味?例如明显的重复代码。
.. ...
关于重构的具体实现方式,在4.3 小步重构一节中会进一步讲解。
6、为领域业务类和数据模型类补充对应的测试代码
通常情况下,遵循ADM分层模式编写的接口服务的代码,会有Api类、Domain类和Model类这三个类。但前面我们只是为A类生成了测试代码,虽然在Api这上高层的意图导向下可以很好地完成功能的开发,但为了更全面地保障内部实现细节的正确性,我们有必要对领域业务类和数据模型类也补充对应的测试代码。尤其是领域业务类,更是我们关注的重中之重,因为这一层有着复杂的规则,重要的领域业务逻辑,也是最容易出现问题的热区。
再一次,可以使用phalapi-buildtest命令为Domain类和Model类生成测试骨架代码。
Tests$ ../../PhalApi/phalapi-buildtest ../Domain/Comment.php Domain_Comment > ./Domain/Domain_Comment_Test.phpTests$ ../../PhalApi/phalapi-buildtest ../Model/Comment.php Model_Comment ./test_env.php > ./Model/Model_Comment_Test.php复制代码
然后,进行相应的调整、修改和编写单元测试代码,运行即可。以Domain_Comment类的单元测试为例,我们分别获取一个存在的评论,和一个不存在的评论,并进行相应的验证。关键的代码如下:
// Tests$ vim ./Domain/Domain_Comment_Test.phprequire_once dirname(__FILE__) . '/../test_env.php';class PhpUnderControl_DomainComment_Test extends PHPUnit_Framework_TestCase{
public function testGet()
{
$id = '1';
$rs = $this->domainComment->get($id);
$this->assertNotEmpty($rs);
}
public function testGetNone()
{
$id = 404;
$rs = $this->domainComment->get($id);
$this->assertEmpty($rs);
}}复制代码其中,评论ID为404是不存在的评论。编辑好保存后,执行一下此单元测试,是可以通过的。
Tests$ phpunit ./Domain/Domain_Comment_Test.php ... ...OK (2 tests, 2 assertions)复制代码
Model类与此类似,这里不再赘述。
7、执行单元测试套件,确保全部测试通过,没有引入新的问题
最后一步,其实也相当于回到了起点。即执行全部的单元测试,并确保全部的测试都是通过的。不现的时,现在我们有了新的单元测试,有了上面评论接口服务对应的单元测试,当准备把代码提交到仓库然后快乐下班之前,我们有必要确认新增加的代码和功能是可以正常运行外,还要确认已有的代码和功能不受影响。
在单元测试目录下,执行phpunit命令,便可执行全部的单元测试,其使用的配置是当前目录的phpunit.xml文件。执行后,可以看到全部的测试都测试通过,且测试用例从原来的10个增加到15个,断言从原来的16个增加到20个。我们的测试势力又强大了!强大的单元测试体系,势必会带来更强大的代码质量。

扬中400电话申请开通【扬中企业网站建设】扬中微信公众号小程序开发运营价格、扬中微信公众号APP软件客户端设计运营、扬中网页页面设计公司费用、扬中公司网站制作方案流程改版维护大概需要多少钱
上往建站提供搭建网站,域名注册,官网备案服务,网店详情页设计,企业网店,专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管,网页美工排版,致力于域名申请,竞价托管,软文推广,全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机,网站推广,百度竞价托管,网站建设,上网建站推广服务,网络公司有哪些等业务,专业团队服务,效果好。
服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)
关键词:网站建设,企业网站,网站制作,网页设计,高端网站建设,企业网站制作,网页制作,制作网站,网站设计,高端网页设计,高端网站设计,做网站,自适应网站


