【Rails】TDD-测试驱动开发
2013-10-03 18:44
423 查看
我们使用的主要工具是集成测试(integration test)和单元测试(unit test)
集成测试在 RSpec 中叫做 request spec,它允许我们模拟用户在浏览器中和应用程序进行交互的操作。和 Capybara 提供的自然语言句法(natural-language syntax)一起使用,集成测试提供了一种强大的方法来测试应用程序的功能,而不用在浏览器中手动检查每个页面。
TDD 的好处在于测试优先,比编写应用程序的代码还早。刚接触的话要花一段时间才能适应这种方式,不过好处很明显。我们先写一个失败测试(failing test),然后编写代码使这个测试通过,这样我们就会相信测试真的是针对我们设想的功能。这种“失败-实现-通过”的开发循环包含了一个心流,可以提高编程的乐趣并提高效率。测试还扮演着应用程序代码客户的角色,会提高软件设计的优雅性。
在测试驱动开发中,我们先写一个会失败的测试,在很多测试工具中会将其显示为红色。然后编写代码让测试通过,显示为绿色。最后,如果需要的话,我们还会重构代码,改变实现的方式(例如消除代码重复)但不改变功能。这样的开发过程叫做“遇红,变绿,重构(Red, Green, Refactor)”。
集成测试在 RSpec 中叫做 request spec,它允许我们模拟用户在浏览器中和应用程序进行交互的操作。和 Capybara 提供的自然语言句法(natural-language syntax)一起使用,集成测试提供了一种强大的方法来测试应用程序的功能,而不用在浏览器中手动检查每个页面。
TDD 的好处在于测试优先,比编写应用程序的代码还早。刚接触的话要花一段时间才能适应这种方式,不过好处很明显。我们先写一个失败测试(failing test),然后编写代码使这个测试通过,这样我们就会相信测试真的是针对我们设想的功能。这种“失败-实现-通过”的开发循环包含了一个心流,可以提高编程的乐趣并提高效率。测试还扮演着应用程序代码客户的角色,会提高软件设计的优雅性。
在测试驱动开发中,我们先写一个会失败的测试,在很多测试工具中会将其显示为红色。然后编写代码让测试通过,显示为绿色。最后,如果需要的话,我们还会重构代码,改变实现的方式(例如消除代码重复)但不改变功能。这样的开发过程叫做“遇红,变绿,重构(Red, Green, Refactor)”。
相关文章推荐
- 测试驱动开发系列之三--TDD策略:SOLID,灵活并可测试的设计
- 验收测试驱动开发:ATDD实例详解
- 测试驱动开发 TDD
- 在PHP中使用Mockery进行测试驱动开发(TDD) - 上
- 结对编程和TDD(测试驱动开发)
- 【转】浅谈测试驱动开发TDD技术
- 网友关于TDD(测试驱动开发)的评论
- 『飞秋』测试驱动开发TDD系列(二)
- 测试驱动开发TDD(四)Google Test系列(目录)
- java测试驱动开发(TDD)之《井字游戏》
- jbpm用户指南翻译:第18章 工作流TDD(测试驱动开发)
- 在PHP中使用Mockery进行测试驱动开发(TDD) - 上
- TDD测试驱动的javascript开发(3) ------ javascript的继承
- Java - 谈一谈测试驱动开发(TDD)的好处以及你的理解。
- 测试驱动开发TDD(五)GTest in Linux
- 测试驱动开发TDD使用心得
- 详解设计测试驱动开发TDD技术总体流程
- 我真的就只能在远方看你吗?!!! "测试驱动开发(TDD)"
- TDD Test Driven Development 测试驱动开发
- 测试驱动开发(TDD)实战小例子 (转)