rspec(1) - summary

沒有測試的代碼就是耍流氓

  1. rspec(1) - summary
  2. specs(2) - model
  3. specs(3) - controller
  4. specs(4) - request
  5. specs(5) - mock
  6. [specs(6) - mailer]
  7. [specs(7) - view]
  8. [specs(8) - routing]
  9. [specs(9) - helper]
  10. [specs(10) - factory-girl]
  11. [specs(11) - fake other gems]
  12. [specs(12) - sidekiq]
  13. [specs(13) - db migration]
  14. [specs(14) - timecop]
  15. [specs(15) - jenkins]

廢話不多說橱鹏,用代碼說話但绕。

  1. 新建rails項目(不帶測試勉吻, 因為rails的默認測試為minitest)
 ~/code/ruby/ rails new rails5_test_demo_01 --skip-test
      create  
      create  README.md
      create  Rakefile
      create  config.ru
      create  .gitignore
      create  Gemfile
      create  app
      create  app/assets/config/manifest.js
      create  app/assets/javascripts/application.js
      create  app/assets/javascripts/cable.js
      create  app/assets/stylesheets/application.css
      create  app/channels/application_cable/channel.rb
      create  app/channels/application_cable/connection.rb
      create  app/controllers/application_controller.rb
      create  app/helpers/application_helper.rb
      create  app/jobs/application_job.rb
      create  app/mailers/application_mailer.rb
      create  app/models/application_record.rb
      create  app/views/layouts/application.html.erb
      create  app/views/layouts/mailer.html.erb
      create  app/views/layouts/mailer.text.erb
      create  app/assets/images/.keep
      create  app/assets/javascripts/channels
      create  app/assets/javascripts/channels/.keep
      create  app/controllers/concerns/.keep
      create  app/models/concerns/.keep
      create  bin
      create  bin/bundle
      create  bin/rails
      create  bin/rake
      create  bin/setup
      create  bin/update
      create  config
      create  config/routes.rb
      create  config/application.rb
      create  config/environment.rb
      create  config/secrets.yml
      create  config/cable.yml
      create  config/puma.rb
      create  config/spring.rb
      create  config/environments
      create  config/environments/development.rb
      create  config/environments/production.rb
      create  config/environments/test.rb
      create  config/initializers
      create  config/initializers/application_controller_renderer.rb
      create  config/initializers/assets.rb
      create  config/initializers/backtrace_silencers.rb
      create  config/initializers/cookies_serializer.rb
      create  config/initializers/cors.rb
      create  config/initializers/filter_parameter_logging.rb
      create  config/initializers/inflections.rb
      create  config/initializers/mime_types.rb
      create  config/initializers/new_framework_defaults.rb
      create  config/initializers/session_store.rb
      create  config/initializers/wrap_parameters.rb
      create  config/locales
      create  config/locales/en.yml
      create  config/boot.rb
      create  config/database.yml
      create  db
      create  db/seeds.rb
      create  lib
      create  lib/tasks
      create  lib/tasks/.keep
      create  lib/assets
      create  lib/assets/.keep
      create  log
      create  log/.keep
      create  public
      create  public/404.html
      create  public/422.html
      create  public/500.html
      create  public/apple-touch-icon-precomposed.png
      create  public/apple-touch-icon.png
      create  public/favicon.ico
      create  public/robots.txt
      create  tmp
      create  tmp/.keep
      create  tmp/cache
      create  tmp/cache/assets
      create  vendor/assets/javascripts
      create  vendor/assets/javascripts/.keep
      create  vendor/assets/stylesheets
      create  vendor/assets/stylesheets/.keep
      remove  config/initializers/cors.rb
         run  bundle install
Fetching gem metadata from https://rubygems.org/...........
Fetching version metadata from https://rubygems.org/...
Fetching dependency metadata from https://rubygems.org/..
Resolving dependencies.................................................
Installing rake 11.3.0
Using concurrent-ruby 1.0.2
Using i18n 0.7.0
Installing minitest 5.9.1
Using thread_safe 0.3.5
Using builder 3.2.2
Using erubis 2.7.0
Using mini_portile2 2.1.0
Using rack 2.0.1
Using nio4r 1.2.1
Using websocket-extensions 0.1.2
Using mime-types-data 3.2016.0521
Using arel 7.1.4
Using bundler 1.11.2
Installing byebug 9.0.6 with native extensions
Installing coffee-script-source 1.10.0
Installing execjs 2.7.0
Using method_source 0.8.2
Using thor 0.19.1
Installing debug_inspector 0.0.2 with native extensions
Installing ffi 1.9.14 with native extensions
Installing multi_json 1.12.1
Installing rb-fsevent 0.9.8
Installing puma 3.6.0 with native extensions
Installing sass 3.4.22
Installing tilt 2.0.5
Installing sqlite3 1.3.12 with native extensions
Installing turbolinks-source 5.0.0
Using tzinfo 1.2.2
Using nokogiri 1.6.8.1
Using rack-test 0.6.3
Using sprockets 3.7.0
Using websocket-driver 0.6.4
Using mime-types 3.1
Installing coffee-script 2.4.1
Installing uglifier 3.0.3
Installing rb-inotify 0.9.7
Installing turbolinks 5.0.1
Using activesupport 5.0.0.1
Using loofah 2.0.3
Using mail 2.6.4
Installing listen 3.0.8
Using rails-dom-testing 2.0.1
Using globalid 0.3.7
Using activemodel 5.0.0.1
Installing jbuilder 2.6.0
Installing spring 2.0.0
Using rails-html-sanitizer 1.0.3
Using activejob 5.0.0.1
Using activerecord 5.0.0.1
Installing spring-watcher-listen 2.0.1
Using actionview 5.0.0.1
Using actionpack 5.0.0.1
Using actioncable 5.0.0.1
Using actionmailer 5.0.0.1
Using railties 5.0.0.1
Using sprockets-rails 3.2.0
Installing coffee-rails 4.2.1
Installing jquery-rails 4.2.1
Installing web-console 3.4.0
Using rails 5.0.0.1
Installing sass-rails 5.0.6
Bundle complete! 15 Gemfile dependencies, 62 gems now installed.
Use \`bundle show [gemname]\` to see where a bundled gem is installed.
run  bundle exec spring binstub --all
\* bin/rake: spring inserted
\* bin/rails: spring inserted
  1. 添加測試rspec_rails gem包到Gemfile中的:development和:test group塊
group :development, :test do
     gem 'rspec-rails'
end
  1. 執(zhí)行bundle install安裝
  2. 初始化spec目錄
rails generate rspec:install

可以看到輸出:


添加了.rspec蒜危,spec/spec_helper.rb,spec/rails_helper.rb文件

  1. 運行測試
bundle exec rspec  #測試所有的
bundle exec rspec spec/models  #測試models
bundle exec rspec spec/controllers/accounts_controller_spec.rb  #測試AccountsController

結果:


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末放椰,一起剝皮案震驚了整個濱河市刑然,隨后出現的幾起案子寺擂,更是在濱河造成了極大的恐慌,老刑警劉巖泼掠,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件怔软,死亡現場離奇詭異,居然都是意外死亡择镇,警方通過查閱死者的電腦和手機挡逼,發(fā)現死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來腻豌,“玉大人家坎,你說我怎么就攤上這事嘱能。” “怎么了虱疏?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵惹骂,是天一觀的道長。 經常有香客問我做瞪,道長析苫,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任穿扳,我火速辦了婚禮衩侥,結果婚禮上,老公的妹妹穿的比我還像新娘矛物。我一直安慰自己茫死,他們只是感情好,可當我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布履羞。 她就那樣靜靜地躺著峦萎,像睡著了一般。 火紅的嫁衣襯著肌膚如雪忆首。 梳的紋絲不亂的頭發(fā)上爱榔,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天,我揣著相機與錄音糙及,去河邊找鬼详幽。 笑死,一個胖子當著我的面吹牛浸锨,可吹牛的內容都是我干的唇聘。 我是一名探鬼主播,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼柱搜,長吁一口氣:“原來是場噩夢啊……” “哼迟郎!你這毒婦竟也來了?” 一聲冷哼從身側響起聪蘸,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤宪肖,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后健爬,有當地人在樹林里發(fā)現了一具尸體控乾,經...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年浑劳,在試婚紗的時候發(fā)現自己被綠了阱持。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡魔熏,死狀恐怖衷咽,靈堂內的尸體忽然破棺而出鸽扁,到底是詐尸還是另有隱情,我是刑警寧澤镶骗,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布桶现,位于F島的核電站,受9級特大地震影響鼎姊,放射性物質發(fā)生泄漏骡和。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一相寇、第九天 我趴在偏房一處隱蔽的房頂上張望慰于。 院中可真熱鬧,春花似錦唤衫、人聲如沸婆赠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽休里。三九已至,卻和暖如春赃承,著一層夾襖步出監(jiān)牢的瞬間妙黍,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工瞧剖, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留拭嫁,地道東北人。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓筒繁,卻偏偏與公主長得像噩凹,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子毡咏,可洞房花燭夜當晚...
    茶點故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內容

  • 這是一個簡單的關于Rails Rspec的簡單的介紹 1 安裝Rspec 在Rails的配置文件Gemfile配置...
    AQ王浩閱讀 26,981評論 6 28
  • Awesome Ruby Toolbox Awesome A collection of awesome Ruby...
    debbbbie閱讀 2,877評論 0 3
  • 加速測試的方法 這里所說的“速度”有兩層含義。 其一逮刨,當然是測試運行所用的時間呕缭。我們這個小程序的測試已經開始出現慢...
    AQ王浩閱讀 2,529評論 1 9
  • 加速測試的方法 這里所說的“速度”有兩層含義。 其一修己,當然是測試運行所用的時間恢总。我們這個小程序的測試已經開始出現慢...
    AQ王浩閱讀 953評論 0 1
  • 配置 測試/調試 環(huán)境 一本沒有測試相關內容的 Ruby 的書不是完整的。如果你對發(fā)布和貢獻開源項目感興趣的話睬愤,社...
    編程青年閱讀 2,389評論 1 8