zoukankan      html  css  js  c++  java
  • Rails 5 Test Prescriptions 倒数第2章spring gem 如何让测试变快。分离rails(只有原理)

    Spring speeds up development by keeping your application running in the background

    Rails程序自动增加:spring和spring-watcher-listen。

    增加一个spring-commands-rspec gem 

    $ spring status  检测是否启动spring 

    Spring is running:
     7424 spring server | gatherer | started 220 hours ago
    24917 spring app    | gatherer | started 65 hours ago | development mode

    $ spring help可以检测版本和spring命令集合

    手动安装gem 'spring-commands-rspec'后,会增加一个spring rspec命令 

    使用这个命令可以快速运行测试,不过作者也说了,测试本身写的好不好更决定速度。 


    Writing Faster Tests by Bypassing Rails 

    5个测试分组:

    1. 集成测试,需要全部Rails stack
    2. 只需要Active Record和数据库
    3. 请求测试,需要ActionPack,或者也需要ActiveRecord,也可能接触数据库看它们是否stubbed.
    4. 只使用ActiveRecord不接触database 
    5. 第三方测试,不需要rails(⚠️我只看了看,没实际经验)

    Prescription :

    Rails不是你的程序,它是一个开发框架,除非你就是开发Rails的并工作在Basecamp大本营。


    Why Speed Is Important 

    作者不是说所有测试都需要在15秒内完成。对大多数程序来说这是不可能的,因为集成测试很重要不能不用,这个很花费时间。

    作者是说如果你有一个可靠的途径只花费少量秒数来运行相对的测试 ,你测试的价值会改进(时间成本下降)。

    可以用Spring,RSpec meatdata,或者标签等等。

    Prescription 

    如果当测试运行时, 你有很多时间来打断焦点,那么你没有得到TDD开发的全部价值。 


    Why Separation from Rails Is Useful 

    主要好处是写测试避免用rails可以鼓励你构件代码来更好的管理增长的复杂度。快速测试只是附加效果。 


    Rails test Precriptions, Hold the rails

    隔绝的基本思想 :隔绝各个对象;从需要加载rails的rails功能中隔绝你的代码。

    隔绝:不同的对象之间的交互所使用的方法越少越好。理想状态是,对象不会知道其他对象在系统中的内部结构。 

    ❌书中给的案例,不能正确连接数据库。略过这个章节。

    其他测试书籍有相关内容 

  • 相关阅读:
    我的2015羊年总结
    谈对象 MVC 和 多端
    自建博客随想录
    梦说1+1等于多少
    多媒体文件格式全解说(下)--图片
    多媒体文件格式全解说(上)--音视频
    做一个“代码模块”交易的网站
    写个屏蔽百度搜索广告的Chrome插件
    Go 系列教程 —— 5. 常量
    Go 系列教程 —— 4. 类型
  • 原文地址:https://www.cnblogs.com/chentianwei/p/9154337.html
Copyright © 2011-2022 走看看