测试 大家怎么看 RSpec?

shangrenzhidao · 2014年05月07日 · 最后由 shangrenzhidao 回复于 2014年05月07日 · 2592 次阅读

最近刚刚接触了 RSpec,有一些疑问,希望大家各抒己见。主要集中在 3 点。 1 为什么要先测试后写程序? 2 RSpec 可以完全取代手动测试吗? 3 之前写 java 时候使用 Junit 单元测试,二者有什么不同吗?

1 一般来说先写测试 可以提高代码质量 减少 bug 如果你本身代码质量就很高 人像编译器似的 比如 DHH 这个水平 就不需要这样了 2 不能 3 对 java 的测试不熟

熟练后有些人说效率能提高 20%,但是这个因人而论,有许多公司要求 tdd 只是因为熟悉 tdd 的人少,并没有太多公司是经历过 tdd 和非 tdd 足够长时间后真正比较经验而选择的

要我还是怀念在大公司的日子,有 QA 团队自己随便谢谢 Unit test 就行了,有时候不写也没关系

#1 楼 @tuliang 嗯 写写还是有好处的

#2 楼 @karmue 看了一些国外的教程,似乎都很推崇 TDD

  1. 帮助思考,更好的 design 代码的结构,测试难写,说明系统设计的不好,耦合度太大 后写测试很难 cover 需要 cover 的 case,1)程序员很懒的,代码写完了,谁还会写多余的 case 2)代码写完后,再写测试一般都写不全
  2. 不能完全取代手动测试,但至少保证大部分情况下程序是没问题的
  3. 功能没多少区别,最大的区别就是 junit,或者说 java 写测试太麻烦了

左手代码,右手测试。当改动很频繁的时候,可以先写功能,等功能稳定了,附上测试。所以无所谓先后。

在 PR 之前确保自己的 spec 是无错的。

TDD 适合很小的单元测试,rspec 要考虑的很多。

先写测试。 如果你先写代码,再写测试,会非常蛋疼。所以有人提出了 TDD。 TDD 大体也可以有两种,严格的是就是测试在代码之前。不严格的就是代码和测试并行,既测试在写完一段代码不久后补上。

#8 楼 @yfractal 写测试的过程,也可以看出系统设计的好坏吧

#9 楼 @shangrenzhidao 耦合度高了不好写测试,方法复杂了不好写测试,参数多了也不好写测试。 应该是吧?

#10 楼 @yfractal 嗯,刚开始用,慢慢习惯就好了

需要 登录 后方可回复, 如果你还没有账号请 注册新账号