clean code-代码整洁之道 阅读笔记(第九章)

2024-06-23 1185阅读

前文连接:clean code-代码整洁之道 阅读笔记(第一章~第八章)-CSDN博客

clean code-代码整洁之道 阅读笔记(第九章)
(图片来源网络,侵删)

第九章 单元测试

9.1 TDD 三定律

TDD 有广义和狭义之分,常说的是狭义的 TDD,也就是 UTDD(Unit Test Driven Development)。广义的 TDD 是 ATDD(Acceptance Test Driven Development),包括 BDD(Behavior Driven Development)和 Consumer-Driven Contracts Development 等。

此处所说的 TDD 指狭义上的 TDD,也就是「单元测试驱动开发」。

TDD 是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD 是 XP(Extreme Programming)的核心实践。它的主要推动者是 Kent Beck。

  • 定律一    在编写不能通过的单元测试前,不可编写生产代码。
  • 定律二    只可编写刚好不能通过的单元测试,不能编译也算不通过。
  • 定律三    只可编写刚好足以通过当前失败测试的生产代码。

            这三条定律将你限制在大概30秒一个的循环中。测试与生产代码一起编写,测试只比生产代码早写几秒钟。

            这样写程序,测试将覆盖所有生产代码。测试代码量足以匹敌生产代码,导致管理问题。

    9.2  保持测试整洁

            测试代码和生产代码一样重要。它需要被思考、被设计和被照料。它该像生产代码一般保持整洁。

            如果测试不干净,你改动自己代码的能力就有所牵制,而你也会开始失去改进代码结构的能力。测试越脏,代码就会变得越脏。最终,你丢失了测试,代码开始腐坏。

    9.3 整洁的测试

            整洁的测试有什么要素?有三个要素:可读性,可读性和可读性。

            测试如何才能做到可读?和其他代码一样:明确,简洁,还有足够的表达力。

    public void testGetPageHierarchyAsXml() throws Exceeption{
    { 
    	makePages("PageOne", "PageOne.Childone", "PageTwo");
    	
    	submitRequest("root", "type:pages");
    	
    	assertResponseIsXML();
    	assertResponseContains(
    		"PageOne", "PageTwo", "Childone"
    	);
    }
    public void testSymbolicLinksAreNotInXmlPageHierarchy() thnrows Exception{
    	WikiPage page makePage ("PageOne");
    	makePages("PageOne.Childone", "PageTwo");
    	
    	addLinkTo(page, "PageTwo", "SymPage");
    	
    	submitRequest("root", "type:pages");
    	
    	assertResponseIsXML();
    	assertResponseContains(
    		"PageOne", "PageTwo", "ChildOne"
    	);
    	assertResponseDoesNotContain("SymPage");
    }
    public void testGetDataAsXml()throws Exception{
    	makePageWith Content("TestPageOne", "test page");
    	
    	submitRequest("TestPageOne", "type:data");
    	
    	assertResponseIsXML();
    	assertResponseContains("test page","
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]