2、软件开发中的测试驱动开发(TDD)全解析

软件开发中的测试驱动开发(TDD)全解析

1. 分离意图与实现的示例

在软件开发中,分离意图与实现是一项重要的任务。我们可以借助 Chris Stevenson 的 TestDox 来达成这一目标。TestDox 能把代码里的主题当作句子的一部分来呈现。

例如以羊为例:
- 羊吃草。
- 羊受惊时会咩咩叫。
- 羊能产出美味的奶。
- 羊会远离牧羊犬。

在这个例子中,羊是主体,其行为通过句子表达出来,并且能够自动转化为代码规范。这里使用 Minitest 测试框架的 spec 风格来描述羊的行为,Minitest 是随 Ruby 语言一起提供的。当从外部思考一个系统时,我们关注的是意图,也就是羊会做什么。

再看 RSpec 中 eq() 方法的测试 API 示例,它展示了如何使用 eq() 方法比较两个相等和不相等的字符串,让开发者能更直观地了解该方法的用法。

还有保龄球游戏的例子,最初的测试代码如下:

it 'score is 10 for a strike - knocking down all ten pins' do
  game = BowlingGame.new
  10.times { game.roll(1) }
  assert_equal 10, game.score
end

这段代码没有揭示滚动十次的意图,因为意图被隐藏了。我们可以通过询问“击倒所有十个球瓶意味着什么”来使意图明确。在保龄球游戏领域,这意味

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值