当前位置: 网站首页>小程序开发>网站优化

连云港申请400电话费用【连云港企业全国热线电话办理】连云港开通400电话电信价格、连云港微信公众号代运营外包托管、连云港网店编辑装修美工、连云港网站推广优化大概需要多少钱

发表日期: 2021-04-25 10:36:53 浏览次数:76

连云港申请400电话费用【连云港企业全国热线电话办理】连云港开通400电话电信价格、连云港微信公众号代运营外包托管、连云港网店编辑装修美工、连云港网站推广优化大概需要多少钱


淮安位于江苏省中北部,江淮平原东部。地处长江三角洲地区, [1]  是苏北重要中心城市, [2]  南京都市圈紧密圈层城市,淮河生态经济带首提首推城市 [3]  ,坐落于古淮河与京杭大运河交点,处在中国南北分界线“秦岭-淮河”线上,拥有中国第四大淡水湖洪泽湖,是全国文明城市 [4]  、国家历史文化名城、国家卫生城市、国家园林城市、国家环境保护模范城市、国家低碳试点城市、中国优秀旅游城市。为淮扬菜的主要发源地之一,是江淮流域古文化发源地之一。

淮安有2200多年建城史。秦时置县,境内有著名的“青莲岗文化”遗址。曾是漕运枢纽、盐运要冲,驻有漕运总督府、江南河道总督府。历史上与苏州、杭州、扬州并称运河沿线的“四大都市”,曾经淮安“因运而兴、因运而盛” [5]  ,有“中国运河之都”的美誉。中国大运河淮安段入选世界遗产名录。淮安地处江苏省长江以北的核心地区,邻江近海,为南下北上的交通要道,区位优势独特。是江苏省的重要交通枢纽,也是长江三角洲北部地区的区域交通枢纽。

淮安人杰地灵,是一代伟人周恩来总理的故乡。 [6]  历史上诞生过大军事家韩信、汉赋大家枚乘、巾帼英雄梁红玉、《西游记》作者吴承恩、民族英雄关天培、《老残游记》作者刘鹗等。 [7] 

淮安有著名的红色旅游景区周恩来故里景区、刘老庄八十二烈士陵园、黄花塘新四军军部纪念馆、苏皖边区政府旧址纪念馆等,生态旅游景区古淮河文化生态景区、里运河文化长廊、洪泽湖古堰景区、第一山国家森林公园、清晏园、金湖水上森林公园等。

乍一看,Google Mock给出的相关输出信息可能不太容易读懂。从最后一行开始看吧!如果是PASSED,可以不用看测试的输出,因为所有测试都过了!如果是FAILED(正如示例一样),我们可以看到有多少测试失败了。如果是其他类别的信息,则是测试程序在一个测试运行过程中崩溃了。

如果有一个或多个测试失败了,可以从下至上观察Google Mock输出信息,找到失败的测试。Google Mock会在每个测试名称前输出一个[RUN],在测试失败的情况下输出[FAILED][OK]。失败的时候,[RUN][FAILED]之间的信息行可以帮助我们了解测试为什么失败。在上面这个示例中,可以看到下面信息:

[ RUN      ] SoundexEncoding.RetainsSoleLetterOfOneLetterWordSoundexTest.cpp:21: FailureValue of: encodedExpected: is equal to 0x806defb pointing to "A"
  Actual: "" (of type std::string)[  FAILED  ] SoundexEncoding.RetainsSoleLetterOfOneLetterWord (0 ms)复制代码

这个断言失败的意思是,Google Mock期待一个名为encoded的局部变量的值为"A",但实际的值是一个空字符串。

这个断言失败是意料之中的,因为为了通过编译,我们特意硬编码了一个空字符串。得到这个负反馈其实是好事,而且这也属于TDD周期内可以发生的事情。首先,我们正是想确保新加的断言不能通过,它代表了还没实现的功能。(有时候是通过的,通常这不是个好事情)。我们也想确保测试是有效的。起初测试失败,在加入适当的代码后通过了,这也说明测试是可靠的。

失败的测试提醒我们编写仅够通过断言的代码即可。如下:

c2/4/SoundexTest.cpp

   std::string encode(const std::string& word) const {➤    return "A";
   }复制代码

现在编译并重新运行测试。最后两行的输出显示测试通过。

[==========] 1 test from 1 test case ran. (0 ms total)[ PASSED ] 1 test.复制代码

发布吧!

我是在开玩笑吗?好吧,不是的。我们想以渐进的方式工作。这么说吧:如果某人告诉我们去构建一个Soundex类,而且只支持字母A即可,那我们已经完成了。自此,我们还想把代码弄得更干净些,但仅此而已,不需要额外的处理逻辑。

另外一个说法是,测试表明了目前系统拥有的功能。现在只有一个测试。为什么还要添加超出此测试所测行为之外的代码呢?

当然,还没完成。我们有大量的其他需求,这些需求将用TDD方法增量地加入系统。就目前已有的测试来说,我们也没完成。我们必须清理掉自己制造的一些小凌乱。

去掉不干净的代码

什么?我们只写了一行产品代码和三行测试代码就有问题了啊?当然,即便区区几行代码也非常容易引入缺陷。TDD方法提供了这样的契机,当一些小问题出现时,我们可以及时修复,这样就避免小问题越积越多(甚至产生一些大问题)。

我们先审阅一下刚写的测试和产品代码,找一找缺陷吧!有一点是可以确定的,测试中的断言不是非常便于阅读。

ASSERT_THAT(encoded, testing::Eq("A"));复制代码

和测试声明(测试用例和测试名称的组合)类似,我们也希望断言读起来像个句子。为此,我们引入using指示符来帮忙。

c2/7/SoundexTest.cpp

   #include "gmock/gmock.h"➤ using ::testing::Eq;

   TEST(SoundexEncoding, RetainSoleLetterOfOneLetterWord){
      Soundex soundex;
      auto encoded = soundex.encode("A");➤    ASSERT_THAT(encoded, Eq("A"));
   }复制代码

现在可以通顺地朗读我们的断言了:断言encoded的值等于"A"

我们称这一小改动为重构,重构是一种代码改写,其特点是在保持现有行为不变的前提下改进设计。这里,我们通过增强测试的表达力来提升测试的设计。Eq()所在的命名空间是一个与测试本意无关的实现细节。隐藏这一细节可以提升测试中的抽象程度。

另一个难点是,我们常常要面对重复代码。一旦有大量的重复代码,维护成本和风险就会大大增加。

我们的Soundex类还没有明显的重复代码。但是,一并看一下测试代码和产品代码,就会发现一个公共的常量,字符串"A"。我们想去除这一重复代码。还有一个问题,测试名称(RetainsSoleLetterOfOneLetterWord)声明了一个一般的行为,但是代码实现仅仅支持一个特定的单个字母。我们想找一个一箭双雕的方法去掉这个硬编码的"A"

c51c866ffa1ab3457f2021e8bbdbcc1.jpg

连云港申请400电话费用连云港企业全国热线电话办理连云港开通400电话电信价格、连云港微信公众号代运营外包托管、连云港网店编辑装修美工、连云港网站推广优化大概需要多少钱

400-111-6878
服务热线
顶部

备案号: 苏ICP备11067224号

CopyRight © 2011 书生商友信息科技 All Right Reserved

24小时服务热线:400-111-6878   E-MAIL:1120768800@qq.com   QQ:1120768800

  网址: http://www.768800.com  网站建设上往建站

关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|

企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|

400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 苏州殡葬一条龙| 朝阳殡葬| 苏州殡葬服务|

预约专家

欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系

  

服务热线:400-111-6878