【Rails】TDD-测试驱动开发
我们使用的主要工具是集成测试(integration test)和单元测试(unit test)
集成测试在 RSpec 中叫做 request spec,它允许我们模拟用户在浏览器中和应用程序进行交互的操作。和 Capybara 提供的自然语言句法(natural-language syntax)一起使用,集成测试提供了一种强大的方法来测试应用程序的功能,而不用在浏览器中手动检查每个页面。
TDD 的好处在于测试优先,比编写应用程序的代码还早。刚接触的话要花一段时间才能适应这种方式,不过好处很明显。我们先写一个失败测试(failing test),然后编写代码使这个测试通过,这样我们就会相信测试真的是针对我们设想的功能。这种“失败-实现-通过”的开发循环包含了一个心流,可以提高编程的乐趣并提高效率。测试还扮演着应用程序代码客户的角色,会提高软件设计的优雅性。
在测试驱动开发中,我们先写一个会失败的测试,在很多测试工具中会将其显示为红色。然后编写代码让测试通过,显示为绿色。最后,如果需要的话,我们还会重构代码,改变实现的方式(例如消除代码重复)但不改变功能。这样的开发过程叫做“遇红,变绿,重构(Red, Green, Refactor)”。
【Rails】TDD-测试驱动开发相关推荐
- 解读 TDD 测试驱动开发
转自:http://www.jianshu.com/p/62f16cd4fef3 本文结构: 什么是 TDD 为什么要 TDD 怎么 TDD FAQ 学习路径 延伸阅读 什么是 TDD TDD 有广义 ...
- 实现TDD测试驱动开发
为什么要用 TDD? TDD 可以让软件开发更快更好. 随着时间的推移,采用 TDD 方式开发新功能会越来越快,修改现有代码的成本可控.相反,传统开发模式开发新功能会越来越慢,修改代码的成本会指数增长 ...
- servlet实现简单登录功能-基于测试驱动开发TDD
今天学习了测试驱动开发(TDD)模式,用这个方法写一个简单的前端登录功能(基于servlet&Jsp的登录功能-三层架构实现) 不知道测试驱动开发,可以点这个: https://blog.cs ...
- 在敏捷中应用测试驱动开发
在敏捷和DevOps领域,企业越来越关注持续集成和持续部署问题.他们更频繁地更新软件,给软件测试造成额外的时间压力.而测试驱动开发可以成为解决这个问题的一剂良方. \\ 什么是测试驱动开发? \\ 测 ...
- 测试驱动开发 测试前移_测试驱动开发:它是什么,什么不是。
测试驱动开发 测试前移 by Andrea Koutifaris 由Andrea Koutifaris Test driven development has become popular over ...
- 【软件测试】测试驱动开发
TDD,测试驱动开发,从敏捷软件开发方法开始流行,是一种非常实用的质量保证执行方式.敏捷软件开发方法使得TDD流行起来. TDD的思想就是要在开发(设计和编码)应用程序代码(要测试的单元)之前,必须先 ...
- 测试驱动开发_DevOps之浅谈测试驱动开发
"测试驱动开发(Test-Driven Development, TDD),以测试作为开发过程的中心,它要求在编写任何产品代码之前,先编写用于定义产品代码行为的测试,而编写的产品代码又要以使 ...
- 简单的11步在Laravel中实现测试驱动开发
测试驱动开发(英语:Test-driven development,缩写为TDD)是一种软件开发过程中的应用方法,由极限编程中倡导,以其倡导先写测试程序,然后编码实现其功能得名. 下文是我在Mediu ...
- 被高估了的测试驱动开发?
测试驱动开发(TDD)始于上世纪 90 年代,时至今时今日,依然只有少数的开发者在践行着.本文作者从软件开发者的角度,又一次帮助我们定义了测试驱动开发,解答了众多开发着对 TDD 常见的谬误. 作者 ...
- C++ 测试驱动开发
看到一篇非常好的C++测试驱动开发文章,这里转载下. 测试驱动开发(TDD)背景及综述 测试驱动开发是 Kent 提出的一种新的软件开发流程,现在已广为人知,这种开发方法依赖于极短重复的开发周期,面对 ...
最新文章
- 韬光养晦的Sony AI,凭什么与Google和Facebook平起平坐?
- bool类型返回值_Python 到底是强类型语言,还是弱类型语言?
- ListDefinition Tips
- 命令行下的FTP使用详解
- 你知道你的模型可以为公司赚多少钱吗
- 行波iq调制器_低功率IQ调制器的基带设计实例—电路精选(1)
- C4C Cloud Application Studio做ABSL开发的一些性能方面的最佳实践
- 【转】Win10系统怎么设置无线做AP热点_win10设置无线为ap热点的步骤
- java 封装api_关于java 封装某个功能为api形式供其他用户调用的问题
- 基本数据类型-列表_元组_字典
- visio中公式太小_冲压模具设计:冲床吨位计算公式、实例分析,设计师值得一看...
- Matplotlab可视化学习笔记(二):如何绘制柱状图
- Mac谷歌浏览器添加JSONView的插件以提高开发的效率
- Android多媒体技术(二)浅析Camera视频实时采集中涉及的参数配置
- linux上ftp上传文件失败
- 跨维度的打击,是可以直接秒杀的
- 【MyBatis】 MyBatis与MyBatis-Plus的区别
- TI公司与MSP430单片机
- 车辆识别系统消息服务器异常,原来这样能处理好停车场车牌识别道闸一体机异常问题...
- ERNIE的掩码机制代码解析