
发表日期: 2021-04-25 10:35:53 浏览次数:156
连云港400电话申请开通【连云港企业网站建设】连云港微信公众号小程序开发运营价格、连云港微信公众号APP软件客户端设计运营、连云港网页页面设计公司费用、连云港公司网站制作方案流程改版维护大概需要多少钱
淮安位于江苏省中北部,江淮平原东部。地处长江三角洲地区, [1] 是苏北重要中心城市, [2] 南京都市圈紧密圈层城市,淮河生态经济带首提首推城市 [3] ,坐落于古淮河与京杭大运河交点,处在中国南北分界线“秦岭-淮河”线上,拥有中国第四大淡水湖洪泽湖,是全国文明城市 [4] 、国家历史文化名城、国家卫生城市、国家园林城市、国家环境保护模范城市、国家低碳试点城市、中国优秀旅游城市。为淮扬菜的主要发源地之一,是江淮流域古文化发源地之一。
淮安有2200多年建城史。秦时置县,境内有著名的“青莲岗文化”遗址。曾是漕运枢纽、盐运要冲,驻有漕运总督府、江南河道总督府。历史上与苏州、杭州、扬州并称运河沿线的“四大都市”,曾经淮安“因运而兴、因运而盛” [5] ,有“中国运河之都”的美誉。中国大运河淮安段入选世界遗产名录。淮安地处江苏省长江以北的核心地区,邻江近海,为南下北上的交通要道,区位优势独特。是江苏省的重要交通枢纽,也是长江三角洲北部地区的区域交通枢纽。
淮安人杰地灵,是一代伟人周恩来总理的故乡。 [6] 历史上诞生过大军事家韩信、汉赋大家枚乘、巾帼英雄梁红玉、《西游记》作者吴承恩、民族英雄关天培、《老残游记》作者刘鹗等。 [7]
淮安有著名的红色旅游景区周恩来故里景区、刘老庄八十二烈士陵园、黄花塘新四军军部纪念馆、苏皖边区政府旧址纪念馆等,生态旅游景区古淮河文化生态景区、里运河文化长廊、洪泽湖古堰景区、第一山国家森林公园、清晏园、金湖水上森林公园等。
c2/2/SoundexTest.cpp
➤ class Soundex{➤ };
#include "gmock/gmock.h"
TEST(SoundexEncoding, RetainSoleLetterOfOneLetterWord) {
Soundex soundex;
}复制代码提问:把所有东西放在一个文件中不是危险的捷径吗?
回答:这是一种短期内不引入复杂开销而节省时间的方式。前提是稍晚些分开文件产生的开销,小于一直在文件间来回切换的开销。当以TDD的方式为一个新行为打磨设计时,很可能经常改变接口。过早地拆分出头文件往往只会成为累赘。
说到“危险”,你忘记过在提交代码前拆分文件吗?
提问:但是遵循TDD周期的话,你不是应该要清理代码的吗?你不是一直要保证代码尽量维持在最高质量吗?
回答:一般而言,这两个问题的答案是肯定的。但是我们的代码没问题,我们只是在确实需要的时候,才选择一个更有效的组织方式。在真的需要之前,我们推延了做这种复杂的事情,否则过早地引入这些复杂性往往会使开发速度变慢。(一些敏捷支持者使用缩写YANGI——You ain't gonna need it。)
如果这种理念深深地困扰你,就马上把东西分散到不同的文件吧!你依然能够进行其余的练习。但是,我建议先试一试这种方法。TDD以一种安全的方式磨砺你,所以要敢于尝试认为可能更有效的工作方式。
我们遵循了第三条规则:只编写刚好让一个失败测试通过的产品代码。很显然,我们还没有完成测试。RetainsSoleLetterOfOneLetterWord并没有测试任何行为,所以它验证不了什么。然而,我们却可以对出现的任何负反馈5及时采取应对措施(这里的情况是编译失败),加入足够的代码消掉它。为使编译通过,我们加入了Soundex类的一个空定义。
5负反馈即为任何错误。与之对应的是正反馈。——译者注
这个时候构建并执行测试就能得到正反馈了。如下:
[==========] Running 1 test from 1 test case.[----------] Global test environment set-up.[----------] 1 test from SoundexEncoding[ RUN ] SoundexEncoding.RetainsSoleLetterOfOneLetterWord[ OK ] SoundexEncoding.RetainsSoleLetterOfOneLetterWord (0 ms)[----------] 1 test from SoundexEncoding (0 ms total)[----------] Global test environment tear-down[==========] 1 test from 1 test case ran. (0 ms total)[ PASSED ] 1 test.复制代码
欢乐时刻!
等等,还不算。毕竟,这个测试除了构造一个Soundex类的实例(Soundex还是个空类),没做任何事情。但是,我们已经有了一些基本的要素。更重要的是,我们已经证明了目前所做的是正确的。
你进行到这一步了吗?你有没有拼错include的文件名,或者忘记在class定义后加上分号?如果有,恭喜你!你已经以最少的代码制造出了错误。在TDD中,如果践行这种安全编码方式的话,即尽早并频繁地测试,通常测试失败的原因只有一个。
测试通过了,是时候将代码提交到本地了。你有合适的工具吗?一个好的版本控制系统,让你可以在代码状态好(或者说,所有测试都通过)的时候方便地提交代码。如果稍后遇到麻烦的话,很容易将代码回滚到一个已知的完好状态,重新尝试改动。
TDD的一部分理念是,每个通过的测试都代表了加入到系统中的、已经验证了的行为。当然,这并不一定意味着可以发布代码了。但是,更多地以此增量的方式思考和频繁地集成本地已经验证通过的功能,成功的几率就会大大增加。
继续吧!往测试中加入一行代码,来表明我们期待的客户端代码与Soundex对象的交互方式。
c2/3/SoundexTest.cpp
TEST(SoundexEncoding, RetainSoleLetterOfOneLetterWord) {
Soundex soundex;➤ auto encoded = soundex.encode("A");
}复制代码我们在添加测试的同时也在作决定。如上述代码所示,我们决定Soundex类暴露一个名为encode()的公共成员函数,它有一个字符串类型的参数。尝试编译会导致失败,因为encode()尚不存在。这一负反馈迫使我们去写足够的代码,让测试通过编译,然后运行。
c2/4/SoundexTest.cpp
class Soundex
{➤ public:➤ std::string encode(const std::string& word) const {➤ return "" ;➤ }
};复制代码现在代码可以编译了,所有的测试也可以通过,这还算不上非常有趣的时刻。是时候验证一些有用的东西了:给定一个字母A,encode()能返回正确的Soundex代码吗?我们用一个断言(assertion)来表达这一关注。
c2/5/SoundexTest.cpp
TEST(SoundexEncoding, RetainSoleLetterOfOneLetterWord) {
Soundex soundex;
auto encoded = soundex.encode("A");➤ ASSERT_THAT(encoded, testing::Eq("A"));
}复制代码断言可用来验证结果是否符合预期。上面代码中的断言声明了encode()返回的字符串等于指定的字符串。现在,编译是通过了,但是断言却失败了。
[==========] Running 1 test from 1 test case.[----------] Global test environment set-up.[----------] 1 test from SoundexEncoding[ 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)[----------] 1 test from SoundexEncoding (0 ms total)[----------] Global test environment tear-down[==========] 1 test from 1 test case ran. (0 ms total)[ PASSED ] 0 tests.[ FAILED ] 1 test, listed below:[ FAILED ] SoundexEncoding.RetainsSoleLetterOfOneLetterWord 1 FAILED TEST
1 FALED TEST

连云港400电话申请开通【连云港企业网站建设】连云港微信公众号小程序开发运营价格、连云港微信公众号APP软件客户端设计运营、连云港网页页面设计公司费用、连云港公司网站制作方案流程改版维护大概需要多少钱
服务热线
顶部
备案号: 苏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