收藏此站 联系我们 网站
当前位置:首页» 行业新闻 » 【建站服务】兴化微信公众号开发【兴化网络推广】兴化建站、兴化网站维护、兴化网页制作、兴化微信小程序代运营公司-域名申请

【建站服务】兴化微信公众号开发【兴化网络推广】兴化建站、兴化网站维护、兴化网页制作、兴化微信小程序代运营公司-域名申请

作者: 风兰 . 阅读量: 29 . 发表时间:2022-09-20 15:24:53

网站建设

上往建站提供服务器空间服务商百度快照排名网站托管百度推广运营,致力于设计外包服务与源代码定制开发360推广搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。


兴化微信公众号开发【兴化网络推广】兴化建站、兴化网站维护、兴化网页制作、兴化微信小程序代运营公司

兴化市,江苏省辖县级市,由泰州市代管,位于江苏省中部、长江三角洲北翼,地处江淮之间,里下河地腹地,是江苏省历史文化名城。

兴化古称昭阳,又名楚水;历史文化底蕴丰厚,源远流长,据考证,境内人类生存史可追溯到距今约6000多年前。兴化诞生出中国四大名著之一《水浒传》的作者施耐庵、扬州八怪之首郑板桥等世界知名文豪和书画家。兴化文化积淀深厚,人才辈出。自南宋咸淳至清末光绪,有262人中举,93人中进士,1人中状元,全国罕见。

兴化兴化市辖3个街道、22个镇、1个乡。 [48]  是著名的“鱼米之乡”,首批国家全域旅游示范区,国家生态示范区,国家卫生城市,全国百强县,全国环保模范城市,世界四大花海之一的“千岛菜花”闻名遐迩。2018年10月22日,入选2018年全国农村一二三产业融合发展先导区创建名单。 [1]  2018年11月,入选2018年工业百强县(市)。 [2]  2018年12月,入选全国县域经济综合竞争力100强。 [3] 

2020年11月,入选 “2020年中国工业百强县(市)”,排名第95位。

例如,在测试启动文件里,我们就对日志服务进行了替换,不是真正写入日志到文件,而是直接在控制台进行输出。

// $ vim ./Shop/Tests/test_env.php//日记纪录 - ExplorerDI()->logger = new PhalApi_Logger_Explorer(
    PhalApi_Logger::LOG_LEVEL_DEBUG | PhalApi_Logger::LOG_LEVEL_INFO | PhalApi_Logger::LOG_LEVEL_ERROR);复制代码

所以,在进行单元测试时,日志内容会直接输出到控制台。

通过DI,我们还可以进行各种各样的模拟。又如,对于在单元测试时,不需要使用任何缓存的话,可以将缓存服务注册成空对象缓存类。即:

// $ vim ./Shop/Tests/test_env.php// 禁用缓存DI()->cache = new PhalApi_Cache_None();复制代码

这样,就可以在测试时,禁止全部缓存,使得缓存都失效。

对PHP官方函数进行模拟

PHP官方函数有:exit()die()header()setcookie()等。而这些如exit()die()会直接终止单元测试,而header()则会导致警告出现。这些都不利于单元测试。

为此,如何既然使用官方函数,又能很好进行单元测试呢?答案仍然是:入口!即对这些官方的底层函数进行包装。可以在公共目录中创建一个公共类来放置这些底层函数的封装。

// $ vim ./Shop/Common/Kernal.php<?phpclass Common_Kernal {

    public static function eixt($status = NULL) {
        if ($status === NULL) {
            exit();
        } else {
            exit($status);
        }
    }}复制代码

而在测试文件中,则可以对这些静态工具方法,进行类覆盖。即在test_env.php文件中编写一个同样的类,但其中的实现是模拟的实现。

// $ vim ./Shop/Tests/test_env.phpif (class_exists('Common_Kernal', FALSE)) {
    class Common_Kernal {

        public static function eixt($status = NULL) {
            echo "exit here ...
";
        }
    }}复制代码

值得注意的是,class_exists()第二参数使用FALSE,避免触发真实类的自动加载。这样,在测试时就可以使用假的Common_Kernal类,而在生产环境中就可以使用真实的Common_Kernal类。

“造假”的技巧远不止这些,这里只是列出了一些常用的技巧。通过上面的讲解,可以总结出一个原则:测试代码与产品代码分离,且测试时不能改动任何产品代码。此外,产品代码应尽量提供一个服务入口,即缝纫点,以便使用桩、替身。

4.1.5 用一分钟,尽早发现问题

用代码证明代码

到目前为止,就评论接口服务而言,我们已经完成了产品代码的开发。对于一般接口服务,通常产品类有三个,分别是Api接口控制类,Domain领域业务类,和Model数据模型类。正如前面ADM模式中介绍的,Api类主要负责接口参数的验证、解析和获取,对Domain类进行调度决策并最后返回响应结果;Domain类主要负责特定领域业务规则、逻辑、具体流程的实现;Model类则是通过技术手段提供相应的数据或进行数据交互。这里的评论接口服务对应的三个类,分别是:Api_Comment、Domain_Comment,和Model_Comment,通过文件查找可以看到这三个类。

$ find ./Shop/ -name "Comment*"./Shop/Api/Comment.php./Shop/Domain/Comment.php./Shop/Model/Comment.php复制代码

除了产品代码外,也创建并完善了评论接口服务与之平行对应的单元测试。这些单元测试保存在对应项目源代码目录的Tests子目录下,例如这里商城项目源代码目录是./Shop,那么其单元测试目录为./Shop/Tests。通过文件查看,我们也可以看到与之对应的三个测试类,分别是:Api_Comment_Test、Domain_Comment_Test,和Model_Comment_Test。

$ find ./Shop/Tests/ -name "*Comment*"./Shop/Tests/Api/Api_Comment_Test.php./Shop/Tests/Domain/Domain_Comment_Test.php./Shop/Tests/Model/Model_Comment_Test.php复制代码

这样是一个很好的开始,有了单元测试这份宝贵的资本,我们多了一套可以保证质量,发现问题的好工具。作为开发人员,编写代码是我们的本职工作,或者说编写代码本来就是我们的爱好。既然如此,同样单元测试也是代码,为什么我们不也好好精心维护呢?如果仍然觉得编写单元测试会增加开发成本,需要大量的时间,那么可以换一个角度来看待单元测试,即把单元测试看作是用代码证明代码。如果能证明代码的正确性,就等于证明了作为开发工程师的专业技能,这样才算得上是一名合格的工程师。因为,我们的工作方式不再是感性的“我觉得我写的这段代码完全没问题”,而是有科学依据理性的“对于我写的代码,我已经证明过了,暂时再也找不到其他问题”。

c51c866ffa1ab3457f2021e8bbdbcc1.jpg


兴化微信公众号开发兴化网络推广兴化建站、兴化网站维护、兴化网页制作、兴化微信小程序代运营公司


上往建站提供搭建网站域名注册官网备案服务网店详情页设计企业网店专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管网页美工排版,致力于域名申请竞价托管软文推广全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机网站推广百度竞价托管网站建设上网建站推广服务网络公司有哪些等业务,专业团队服务,效果好。

服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)


关键词:网站建设,企业网站,网站制作,网页设计,高端网站建设,企业网站制作,网页制作,制作网站,网站设计,高端网页设计,高端网站设计,做网站,自适应网站

全国服务热线
18114747181
二维码
手机端二维码
上往建站
地址:全国各地都有驻点商务 |  网站建设上往建站
在线咨询QQ:1120768800
 
QQ在线咨询
售前咨询热线
18114747181
营销顾问
营销顾问
售后服务热线
400-000-1116
售后服务
售后服务