最近刚刚接触了 RSpec,有一些疑问,希望大家各抒己见。主要集中在 3 点。 1 为什么要先测试后写程序? 2 RSpec 可以完全取代手动测试吗? 3 之前写 java 时候使用 Junit 单元测试,二者有什么不同吗?
1 一般来说先写测试 可以提高代码质量 减少 bug 如果你本身代码质量就很高 人像编译器似的 比如 DHH 这个水平 就不需要这样了 2 不能 3 对 java 的测试不熟
熟练后有些人说效率能提高 20%,但是这个因人而论,有许多公司要求 tdd 只是因为熟悉 tdd 的人少,并没有太多公司是经历过 tdd 和非 tdd 足够长时间后真正比较经验而选择的
左手代码,右手测试。当改动很频繁的时候,可以先写功能,等功能稳定了,附上测试。所以无所谓先后。
在 PR 之前确保自己的 spec 是无错的。
TDD 适合很小的单元测试,rspec 要考虑的很多。
先写测试。 如果你先写代码,再写测试,会非常蛋疼。所以有人提出了 TDD。 TDD 大体也可以有两种,严格的是就是测试在代码之前。不严格的就是代码和测试并行,既测试在写完一段代码不久后补上。