`
lettoo
  • 浏览: 35244 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
博客专栏
58ccff5b-5ca6-387a-9c99-a277f31a9e51
我和Java数据库操作的那...
浏览量:9487
社区版块
存档分类
最新评论

测试驱动开发:红、绿、重构

TDD 
阅读更多

在读Ruby on Rails Tutorial: Learn Rails by example 过程中,发现有很多不错的观点,记录并翻译一下,英文不好,请见谅。

 

测试驱动开发:红、绿、重构

TDD: Red, Green, Refactor

 

在测试驱动开发过程中,我们首先写一个不能通过的测试。我们的例子中,要写一段验证“应该是关于”页面的测试代码,(译注:当然,这个时候 about page并没有实现,如果运行测试的话,应该会失败掉,红!)然后,要使测试代码通过的话,就要在我们的例子里就要实现关于页面的行为和视图。那为什么我 们不反过来,先写功能,再测试呢?这是我们要确保测试代码真的测试了我们后来加上的功能。在我刚刚开始使用TDD的时候,我非常惊奇的发现我的测试会捕获 那么多的错误,哪怕测试什么都没有做。当测试用例先失败,再通过,如此反复,对测试代码做了正确的测试就越来越有信心了。

In test-driven development, we first write a failing test: in our case, a piece of code that expresses the idea that there “should be an about ” page. Then we get the test to pass, in our case by adding the about action and corresponding view. The reason we don’t typically do the reverse—implement first, then test—is to make sure that we actually test for the feature we’re adding. Before I started using TDD, I was amazed to discover how often my “tests” actually tested the wrong thing, or even tested nothing at all. By making sure that the test fails first and then passes, we can be more confident that the test is doing the right thing.

 

还有重要的一点是,TDD并不是什么时候都适用的。特别是当为了探查或者解决某种不确定的问题而要快速实现一些功能时,往往会忽略测试代码而直接完成功能代码。(在极限编程中,这种探索性调研的步骤被称为spike ),只有当你确定了问题的解决方案后,你可以使用TDD来实现一个更优雅的版本。

It’s important to understand that TDD is not always the right tool for the job. In particular, when you aren’t at all sure how to solve a given programming problem, it’s often useful to skip the tests and write only application code, just to get a sense of what the solution will look like. (In the language of Extreme Programming (XP) , this exploratory step is called a spike .) Once you see the general shape of the solution, you can then use TDD to implement a more polished version.

 

“红, 绿,重构”是一个在测试驱动开发中使用的方法,第一步,红,意味着写出不能通过的测试(译注:即先写测试,而功能代码未实现),有很多测试工具或以显示错 误为红色。第二步,绿,意味着测试通过(译注:实现功能代码,以便让测试代码可以通过)。当测试通过之后,我们就可以在不影响功能正确的基础上,进行代码 重构(比如,去除重复代码)。

One way to proceed in test-driven development is a cycle known as “Red, Green, Refactor”. The first step, Red, refers to writing a failing test, which many test tools indicate with the color red. The next step, Green, refers to a passing test, indicated with the color (wait for it) green. Once we have a passing test (or set of tests), we are free to refactor our code, changing the form (eliminating duplication, for example) without changing the function.

 

原文引自:http://ruby.railstutorial.org/chapters/static-pages#top

分享到:
评论

相关推荐

    测试驱动开发及代码重构

    在文件名“测试驱动开发及代码重构”中,可能包含了关于TDD实践的案例分析、具体步骤、最佳实践以及如何在实际项目中实施TDD和代码重构的指导。这样的资源对于学习和理解TDD方法论及其在软件开发中的应用非常有价值...

    测试驱动开发 测试驱动开发 测试驱动开发 测试驱动开发

    测试驱动开发(Test-Driven Development,简称TDD)是一种软件开发方法,强调在编写实际代码之前先编写测试用例。这种做法有助于确保软件的质量,减少缺陷,并提高代码的可维护性。TDD的核心理念可以概括为“红-绿-...

    测试驱动开发电子完整版

    首先,我们要理解测试驱动开发的基本流程,它主要包括三个主要步骤:红、绿、重构。"红"阶段,开发者编写一个最小化的失败测试,这个测试应该针对即将实现的功能。运行测试,因为还没有编写实现代码,所以测试会失败...

    python测试驱动开发

    ### Python测试驱动开发 #### 知识点概览 1. **测试驱动开发(TDD)的概念** - 定义与原则 - TDD在软件开发生命周期中的作用 - 实施TDD的好处与挑战 2. **Python与测试驱动开发** - Python作为TDD的理想语言 -...

    测试驱动开发与重构PPT学习教案.pptx

    总结来说,测试驱动开发(TDD)和重构是现代软件开发中不可或缺的实践,它们能够保证代码质量,提高开发效率,同时也有助于保持代码的可维护性。在实际应用中,TDD和重构应当紧密结合,共同为软件开发的质量和效率...

    测试驱动开发.pdf

    测试驱动开发(Test-Driven Development,简称TDD)是一种软件开发方法,强调在编写实际功能代码之前,先编写测试用例。这种方法的核心理念是“先测试,后编码”,旨在提高软件质量,降低维护成本,同时增强开发者的...

    测试驱动开发的艺术——全书源码

    测试驱动开发(Test-Driven Development,简称TDD)是一种软件开发方法,强调在编写实际功能代码之前先编写测试代码。这种做法有助于确保软件的质量,减少bug,并提高代码的可维护性。《测试驱动开发的艺术》这本书...

    测试驱动开发_中文

    测试驱动开发(Test-Driven Development,简称TDD)是一种软件开发方法,由Kent Beck在其同名著作《测试驱动开发》中提出。这种方法主张先编写测试用例,再编写实现功能的代码,以此来驱动开发过程,确保代码的质量...

    测试驱动开发电子书入门

    ### 测试驱动开发电子书入门知识点详解 #### 一、测试驱动开发(TDD)概述 测试驱动开发(Test-Driven Development,简称TDD)是一种软件开发方法论,它要求在编写实际代码之前先编写测试用例。这种方法的核心理念是...

    TDD 测试驱动开发 文档 详细

    测试驱动开发(Test-Driven Development, 简称TDD)是一种软件开发实践,强调在编写实际代码之前先编写测试用例。这种方法的核心理念是通过编写能够失败的测试来定义需求,然后编写足够的代码使测试通过,最后重构...

    测试驱动开发Kent Beck

    《测试驱动开发》是Kent Beck的经典著作,这本书深入探讨了测试驱动开发(TDD)这一软件开发实践。TDD是一种编程方法论,它强调在编写实际功能代码之前,先编写测试用例,以此来指导软件设计和编码过程。通过这种...

    .net测试驱动开发指南

    《.NET测试驱动开发(TDD)指南》是针对C#编程语言的一份宝贵资源,它旨在教会开发者如何采用测试驱动的开发模式进行软件设计。测试驱动开发是一种编程实践,强调在编写实际代码之前先编写测试用例,以此来定义功能...

    代码大全2、测试驱动开发.zip

    《代码大全2》和《测试驱动开发》是两本在软件工程领域极具影响力的书籍,它们分别探讨了编程实践和测试策略的重要方面。 《代码大全2》由Steve McConnell撰写,是编程界的经典之作,主要关注如何编写高质量的代码...

    aglie java测试驱动开发敏捷经典(2)

    《敏捷Java测试驱动开发敏捷经典(2)》是关于软件开发方法论中的一种高效实践——测试驱动开发(Test-Driven Development, TDD)在Java语言环境下的应用。TDD是一种编程范式,它强调先编写测试用例,再编写满足这些...

    测试驱动开发 by example.rar

    测试驱动开发(Test-Driven Development,简称TDD)是一种软件开发方法,强调在编写实际代码之前,先编写单元测试。这种做法旨在提高代码质量、减少缺陷,并促进更好的设计。"测试驱动开发 by example"这个资源可能...

    测试驱动开发 英文版

    测试驱动开发(Test-Driven Development,简称TDD)是一种软件开发方法,强调在编写实际代码之前先编写测试用例。这种做法旨在提高软件质量、降低维护成本并减少错误。"Test-Driven Development By Example"是一本由...

    测试驱动开发的艺术

    测试驱动开发(Test-Driven Development,简称TDD)是一种软件开发方法,强调在编写实际功能代码之前先编写测试用例。这种开发模式的核心理念是通过编写可运行的测试来定义需求,确保代码的质量和功能正确性。在...

    aglie java测试驱动开发敏捷经典(1)教程部分

    Java测试驱动开发(TDD)是一种软件开发方法论,它强调在编写实际代码之前先编写测试用例。这种做法有助于确保代码的质量,因为每个功能在实现之前都已经被测试覆盖。在敏捷开发环境中,TDD是常见实践之一,因为它...

Global site tag (gtag.js) - Google Analytics