测试 关于测试应该如何上手比较好呢?各位能分享下经验么?

tassandar · March 07, 2012 · Last by clc3123 replied at March 07, 2012 · 3411 hits

原本写程序一直懒得写测试,最近看了 rails cast 里面的测试的视屏,又被各种书中灌输测试思想,决定把前几个自己写的小项目都写上测试。结果自己一动手就蒙了,网上源码测试风格千人千样,每个人用的工具还各不相同,想自己就从 rspec 写起结果发现 简单的肯定会过的测试我会写,稍微复杂点的逻辑和 controller 层的测试压根就写不出来。不知道各位大大是怎么写测试的呢,刚上手应该如何快速有效地写出靠谱有用的测试呢?

https://github.com/chloerei/code_campo

我写 Test::Unit,我觉得 Test::Unit 语法平实,更容易理解。楼主可以参考 code_campo 的 git log。

测试其实就一个逻辑:进行了什么操作,发生了什么效果。简单的测试很多时候很有效,不要把逻辑的复杂和测试的复杂绑定起来,写测试的时候把自己作为第 3 者观察就清晰很多了。

2 Floor has deleted

#2 楼 @Rei 能解释一下 Unit 测试和 Rspec 测试什么区别么。 #1 楼 @ywencn 的代码我大概看了一些,感觉不同的人用的工具和测试风格完全不一样,不知道怎么模仿比较好。

#3 楼 @tassandar

1 语法不同

Test::Unit 用 asset_* 断言风格 Rspec 用 should * 风格

2 Rspec 的辅助方法多一些,比如 should include

3 Rspec 可以嵌套上下文,上下文复杂的时候比较有帮助

4 Test::Unit 是 Rails 自带的,没有升级阻碍。rspec_rails 看文档说一些 should 方法其实是对 Test::Unit 的包装。

然后我感觉没别的了,做的是一样的事。

#3 楼 @tassandar 确实啊,我觉得 shopqi 的是写得比较中规中矩的,刚开始可以学习。

我写 rspec 时,先把一个个 it block 的文字描述写好,block 中间 pending,等要测的方法或流程写了那么个七八条 it 描述了,再开始填 it blocks。带着点挑刺的心态,好像你在 hack github 那种感觉就对了。

You need to Sign in before reply, if you don't have an account, please Sign up first.