行为驱动开发:RSpec 与 Cucumber 入门指南
1. 行为驱动开发概述
传统测试方式若聚焦于对象内部结构,会产生测试与被测试对象内部结构的依赖。比如,确保 register() 方法将 Registration 存储在 Registry 的 registrations 集合(且该集合为 Array )中。若因其他需求将 Array 改为 Hash ,即便对象行为未变,测试也会失败。这种脆弱性会增加测试套件的维护成本,甚至导致其被忽视和丢弃。
行为驱动开发(BDD)则将重点放在行为而非结构上,它涵盖软件开发的各个层面。无论是对象计算两座城市间的距离、委托第三方服务进行搜索,还是用户界面在输入无效信息时给出反馈,这些都是行为。
BDD 借助简化描述软件使用场景的语言来促进沟通,采用 “Given(给定)、When(当)、Then(那么)” 这一模式。这三个词易于业务分析师、测试人员和开发人员理解,且贯穿于 Cucumber 的语言中。
2. RSpec 介绍
RSpec 由 Steven Baker 于 2005 年创建。当时,Steven 从 Aslak Hellesøy 处听闻 BDD 的理念,而 Aslak 曾与 Dan North 共同参与相关项目。在 Dave Astels 建议下,鉴于 Smalltalk 和 Ruby 等语言,可更自由地探索鼓励关注行为的新 TDD 框架,RSpec 应运而生。
超级会员免费看
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



