测试 Kent Beck 谈测试粒度

lilu · 2012年09月04日 · 最后由 alvin2ye 回复于 2012年09月06日 · 3318 次阅读

不知道 kent beck 是谁的人请自行 wiki

http://stackoverflow.com/questions/153234/how-deep-are-your-unit-tests

看第一个答案,我觉得关于是否应该追求代码覆盖率的争论该告一段落了

我目前的推荐方案是:

  • 复杂和容易出错的 model 方法做 unit test
  • 让 controller 尽可能 skinny,不做测试,除非是一些权限相关和有破坏性的
  • 客户端用 jasmine 做 unit test
  • 为你的产品最主要的故事流程做 integration test,用 capybara 或什么都成,但不应该超过三个

同意,其实我觉得 kent beck 说的很对,测试到自己有信心就可以了,但是这个信心对于不同的人定义是不一样的,对于我来讲信心大概就是代码写完了后就可以把大脑清空不用再想着实现的逻辑和坑,代码中自己能想到容易出问题的地方都被测试保护,一些特殊的使用方法都被测试说明,使我有信心不用占用大脑记忆。 还有就是如果程序出现问题,用测试覆盖,保证下次不会再犯同样的错误。 对于开发我会用尝试用测试驱动,但是驱动出来程序后,会整理重构一下测试,也经常会删除一些测试,留下我认为足够合适的测试即可,也就是满足我个人“信心”要求的即可,否则也会导致测试的过多,粒度过细以及重复和混乱。 总之,“信心”很重要,测试也需要精心持续的设计和维护。 第一次回复:)

Kent Beck 一直在告诉我们,测试和代码一样,不要过度,不要最求 100%

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