单元测试都需要测试哪些??测试小白 单元测试就是对 model 的测试,但很少碰测试,小项目需要测试,不知道如何下手?? 现在知道的只有对 验证 进行测试。其他的就不知道的??求指教
#7 楼 @tiseheaini 不好意思才看到.. 我觉得这个不太好三言两语。建议你看一些实例,比如 https://github.com/pragmaticly/railscasts-china/tree/master/spec
你这次去 Rubyconf 吗?我那时还会分享一些经验 :)
单元测试就是在 class/method 这个层级进行测试。
往往单元测试都是白盒测试,形象点说是 开盒测试,相对于黑盒测试,意思就是在已知代码实现的情况下进行测试。
白盒测试的的原因,就是要达到尽可能高的测试覆盖率,包括 Code 覆盖,Condition 覆盖 还有 Path 覆盖 等。
Code 很好理解,就是尽量达到所有的 Code 都测试到。
Condition,就是如果你又一个 if.. else, 那么 if 跟 else 的情况都要测试到。这里有时候还包括边界值和极限值的测试。
Path, 就是当你的代码执行有多种路径的时候,最好要测试到个种路径。可以是组合的 if..else.或者是嵌套的 if..else,都会有不同的路径组合,包括 exception 的处理,最好都要测试到。
通常我在 Rails 单元测试的时候做这么几件事。 1.mock/stub, 就是除了当前测试的这个类或者方法是真的,其他的全都是替身,减轻了单元测试的复杂度。
每个 Action 必须有一个功能测试 如果你想模拟用户的多个请求,可以用集成测试 如果你想测 Model 层的算法,集成测试和功能测试都无法满足你的时候,你可以用单元测试。
所有测试的比例 应该是 功能测试 60% 集成测试 30% 单元测试 10%
仅供参考,概不负责。)