测试 测试都用 RSpec?

as181920 · 2013年08月21日 · 最后由 as181920 回复于 2013年08月23日 · 8129 次阅读

咨询下行情, 由于公司系统基本不写测试(原因:一个人写/维护,小项目基本无须长期维护)

只有给自己写一些东西的时候先上测试代码,不过一直用自带的 test/unit 或者 minitest 就好了,一则比较简洁,二则语法比较对口味,三则基本需求也都能满足,四则学习成本比较低

但是主流好像都在用 rspec,大家都用这个?有坚持用 minitest 的么?介绍个理由?(没时间自己写了去体会,所以偷懒先问下)

伴随着 Rspec 是一套 BDD 的理念,Rspec 的 DSL 比较适合这个

如果追求简单明了 用 mini_test 也不错

从来不写测试 +1

#1 楼 @knwang 惭愧,还没有遇到强烈 BDD 需求的场景。

另,一般情况或者小项目的话 TDD 够了。另外测试代码框架和这两个理念绑的有那么紧么,好像关键词有点差异,同时也看使用方式吧。

我看那么多团队用 rspec,应该不都是在用 BDD 方式的缘故吧。

#2 楼 @messiahxu 闲话:我没说我从来不写测试哈。最早工作的时候都是平均每 3 天中用半天写代码,2 天测试,剩半天晃悠哈。

#4 楼 @as181920 RSpec 必修课,Capybara 推荐的专业课,Cucumber 依据个人的选修课

Rspec 瞎折腾,包了一层难懂的 DSL,但是没有减少代码。

#7 楼 @nightire 多谢,学习了。

允许牛角尖的话,如果进一步问, 1,BDD 是更关注于系统内部模块之间的交互过程,如果用 minitest 的代码去写会有什么问题? 2,RSpec + Capybara 为代表的 DSL 的应用更有助于开发者描述这些行为,主要体现在哪些方面

瞎猜: 1,rspec 用的关键词是否更贴合人描述行为的用语?如果用纯程序人员抽象的角度使用这些关键词,是否两个框架的差异就没有多少?

不准确的经验: 1,如果涉及到页面行为的测试,Capybara 是带来很多方便的功能

rspec 还是有点好处的

it "..." 测试的描述可以更清楚,而且不会因为意外方法重名而把前面的测试丢了

before :eachbefore :all 容易记住

可以选择 彩色输出 (-c), 文档输出 (-f d), 编辑器专用输出 (-f textmate), 还有 nyancat formatter...

should == 把哪个是 expect, 哪个是 actual 分得很清楚,还可以少写一些括号 (assert_equal({}, output) 就不能省括号)

== 是最自然不会写错的,如果一段时间没写代码,就会忘记是该写 assert_equal 还是 assert_equals 了...

Rspec 的语法更人性化一些。 具体到测试内容的话,无论 TDD 还是 BDD 都是要注重测试行为而不是测试定义。

新项目用了 Cucumber,我就奇怪了,我用 Cucumber 测的 API 为什么被同事喷?还不给解释。

#13 楼 @hbin 测试 API 为什么要动用 cucumber... =.=

#6 楼 @Rei

好吧,我点了喜欢...

说个八卦 rspec 自己是用 cucumber 来做测试,而 cucumber 是用 rspec 来做测试:)

#9 楼 @nightire 非常感谢有最真实一线的感受和经验予以分享。以前给公司培训过敏捷和流程,理念这一块略知,代码这一块还是体验下比较好,找机会我去用用看。

#6 楼 @Rei 表同感,自己喜欢的项目继续用 minitest 哈;其它项目找个机会用 rspec 来体会下。

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