石建 | Fat Mind

关于单元测试

题记:新同学分享了“测试驱动”,第一次感觉测试驱动离自己那么近。因此开始尝试。记下自己的一小点想法。

1.一切从测试开始
  不管在写复杂的代码,还是简单的代码,一切从测试开始。练习成自己编码的习惯。
  自己的做法只能算是“伪测试驱动”,因为还是有详细的设计,但遵循此做法,对于需求的变更、代码存在的bug,导致编码修改的时候,心里是踏实的。
  目前自己还不能感觉到对后期的维护会带来什么样的结果?
  推荐《测试驱动开始》。

2.工具
  junit、mockito、emma

  junit,这是大家熟知的,学到新点:a。参数化测试  b。private方法测试(反射) c。runwith & Unite,组织测试单元
  mockito,轻量的mock工具。测试中很麻烦的一个问题是:环境依赖,比如:web中依赖容器生成request对象。mockito很好的解决大部分问题(static类与private方法未能解决)。
  emma,代码覆盖率检查工具,eclipse插件。效果:红色=未测试;黄色=测试不完整,只是部分逻辑;绿色=测试完整。(注意:不能绝对的追求覆盖率,一定要记住2/8原则,将主要的精力关注主要的逻辑)。

3.习惯
  a。代码结构,3部分:prepare(包含mock)准备数据、action执行、assert验证
  b。方法命名:被测试方法名$测试目的,如:run$ParameterIsNull
  c。测试A类,有两个方法run()和prepare(),run方法调用prepare,且prepare执行非常耗时间。想要单独测试run()方法 ?
     答案:B extends A,复写prepare方法(等于是mock prepare方法),单独的测试run方法逻辑。
  d。持续写测试代码的习惯



  

posted on 2010-11-02 21:31 石建 | Fat Mind 阅读(235) 评论(0)  编辑  收藏 所属分类: 一点理解


只有注册用户登录后才能发表评论。


网站导航:
 

导航

<2010年11月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

统计

常用链接

留言簿

随笔分类

随笔档案

搜索

最新评论

What 、How、Why,从细节中寻找不断的成长点