天天看点

rails test prescription 随感

controller测试
  1 看一个普通,基本的用户请求是否能引发预计的ActiveRecord正常工作,需要的数据是否传给了view
  2 检测controller是否能够适当地处理不合格式的请求
  3 检测权限系统是否正常工作,比如一个用户请求了登录或者特定角色才能访问的页面           
view测试
  1 view不报错
  2 view中的数据是否是你计划生成的数据
  3 检测根据角色动态生成的部分,比如:登录链接,管理员链接等是否正确显示           
集成测试与controller测试的区别
  需要对session,cookie等跨action的数据的正确性进行测试           
测试层次
  1 model
  2 controller
  3 view(helper)
  4 集成
  5 验收
  要遵照mvc结构。反例是如果将属于model层的东西放到controller中,那么,你至少需要模拟一个http请求,
才能开始测试           
测试写到什么时候够了
  我只能说,你可以在rcov中达到100%,但是rcov(或者其他测试工具)的计算方式是有问题的,你永远无法100%
测试,就像你永远也写不出完美的软件一样,够好,就可以了           
什么时候使用mock/stub
  1 解决依赖性
    比如:你在写一个支付接口,但是现在你在开发阶段,还不想和银行打交道
  2 解决某些情况
    比如:你写了一个扔色子系统,随机生成1-6的数字,而你需要对掷出6点时的程序进行测试
         测试程序的失败情况,而失败情况可以用stub轻松生成
  3 测试过程时,未实现的功能的替代
  4 Interface Discovery
    设计api时,你需要它           
一个测试不要使用太多mock或者stub,使用三个以上就要注意了           
是否测试负面情况
  上帝保佑我们有足够的时间           
先写测试还是后写测试
  如果你接下来要做的只是验证正确性,那么你可以后写测试,不过,验证正确性只是TDD的目的之一,你至少要在心
里记住,先写测试可以改善代码质量           
mock类库
  rails-test-prescription 7.7 已做出了明了的比较           
你至少需要熟悉的测试工具
  1 rspec
  2 cucumber
  3 capybara
  4 factory-girl
  5 database-cleaner