iteye_304 2008-08-05 11:30
浏览 223
已采纳

TDD/BDD,测试/行为如何驱动开发?

看过一些关于 RoR 里 TDD/BDD 的概念和实践的文章,Test::Unit 和 RSpec 我也知道怎么使用,也尝试过在一些小项目中用它们先写好测试/行为描述,然后开始写实现,但总是感觉写出来的测试/行为描述都是些琐碎的东西(例如 Model 的字段取值范围之类),跟我真正想要的功能似乎并没有太大关系,从而无法驱动出我需要的实现代码。

请问这是怎么回事,我需要怎样来解决这个问题?
[b]问题补充:[/b]
谢谢 open2ye 的回答,但是我现在的情况是测试无法驱动出功能,开发根本没有办法按照 TDD 的方式继续下去了,怎么坚持?

有测试代码写得比较好的开源 Rails 项目推荐吗?我所在的公司开发团队小,并没有可以参考学习的优秀代码。
[b]问题补充:[/b]
其实我觉得我的问题不在于不知道什么东西该测什么东西不该测,而是根本就不知道如何写出能驱动出功能的测试,感觉写出来的测试都是微不足道的,没有抓住重点的测试,所以无法驱动出想要的功能来。简言之,就是不知道如何设计测试。

请问如何才能学习这种能力?有什么讨论这个问题的优秀书籍吗?

  • 写回答

9条回答 默认 最新

  • robbin 2008-08-05 22:58
    关注

    我觉得你现在需要练习的是书写user story(用户故事)的能力。把你的业务需求用一个一个User Story描述出来,User Story要尽量细一点,然后一个User Story就是一个spec,就这么简单。

    [url]http://errtheblog.com/posts/54-be-dee-dee-and-me[/url]

    你可以看看这篇文章。用test spec可以先写User Story,例如:

    [quote]A User (in general):

    • should be able to digg a story
    • should not be able to digg a story twice
    • should be able to tell if he has dugg a story [/quote]

    这是一个User Story,用yaml格式描述的,然后运行一个rake task,就生成spec的骨架了,接着你填写spec的测试内容就可以BDD驱动编程了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(8条)

报告相同问题?

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度