Skip to content

Latest commit

 

History

History
114 lines (95 loc) · 5.09 KB

5th_20170327.md

File metadata and controls

114 lines (95 loc) · 5.09 KB

Step-to-Rails-Expert.rb 第5回

本日の流れ

  • 自己紹介
    • 普段触っている分野
    • 今日参加した目的 など
  • 本編
  • 最後に感想等

自己紹介(時計回り)

  • ebihara99999 主催者
  • sinsokuさん 今日間に合った
  • shimaさん SierでRails。社内にrails使いが少ないので参加。テストに関しては我流。
  • hasadaさん(はっさん) 来月卒業。railsでアルバイト。リファクタが業務なので、テストコードをいっぱい書く必要がある。
  • tk_hamaguchiさん Railsの社内リードエンジニア。分野は幅広い。
  • two_sann(sanoさん)スタッフ 社内でrails。自発的な勉強が必要と思い参加。Rspec、cucamberを利用。

本編

sinsokuさんによるLT

http://qiita.com/sinsoku/private/eee1c758e607b14ef23a たまに落ちる系 timecop(https://github.com/travisjeffery/timecop)

TimeHelpers

bebanjo/delorean

月初/月末で落ちるテスト

viewのテストどうする cucamerでシナリオ単位のテストをする。viewをテストするというよりは、シナリオ(機能)をテストするようなイメージ。その際にviewも最低限はテストできる。 重要なページなら(そのページがバグっていると困るなら)テストする。

https://github.com/tomykaira/rspec-parameterized

https://coveralls.io/ https://codecov.io/

codecovはchrome拡張がある。あとやすい。 カバレッジの目標値はある? 通っていないところは、重点的に見る。通らないところを絞っておく。カバレッジは通っていないt頃を可視化するツール。通っていないけどOK?ときかれうんと言えれば通ってなくてOK。

  • 目標値8割くらいは行っていきたい。
  • 7~8割
  • 使っていない(した方が良い!)まず見えるようにするというところから。
  • 目標値高すぎても辛いw
  • codecovをデフォルトで使うと、一個も使っていないコードを無視される。カバレッジが正確に出ない。
  • Rubyはクラスメソッドは一回でもクラスが読み込まれると通ったことになる。

テーマ: テスト

database_cleaner

before (:each)すれば必要ないと思うが、before(:all)して、不要になったデータを消していく方が早いはず。どちらが良いのでしょうか。
  • detabase_rewinder readmeにDatabaseCleaner = DatabaseRewinder
  • test queueを使って高速化 時間がかかる分だけ並列化 https://github.com/tmm1/test-queue シナリオ単位の分散(parallel testはファイル単位) 並列の方法はいくつかある。 dockerで実行基盤で固めておて、CIを使用する

どのくらいのテストケース数でペイする? -1hくらいテストかかる

Rspec

shared_examples_for の引数(命名は)はケース?
  • 必ず名詞にする
  • describeの中に書いてスコープを限定する
  • 書くのは楽だけど・・・直すのは・・
  • shared_contextを使う(アウトプットも見やすい)
  • メソッドで良くない?かを考える
  • 多少冗長でも、分かりやすい方を優先(DRYを目指すのではなく読みやすい方に)
  • 上に行ったり下に行ったりはテストではしたくない(メンテしたくない)
  • テスト単位を分かりやすい単位にして可読性を上げる
  • let! は外側のスコープで使わない方が良い

VCR

その他

gem作成の際のテストで、migrationファイル等のテンプレートをgenerateする機能について、そのテンプレートファイルが想定通りに出力されているかをテストする方法ってあるのでしょうか?

https://github.com/cucumber/aruba ドキュメントはあまりない・・・ 標準出力のテスト目的で使える

railsでgeneratorのテストをどうやっているか確認してみる or railsのテスト用ダミーアプリを作成してそこでテストする(kaminariが参考になる)

  • activedecoratorも参考になる

https://github.com/amatsuda/active_decorator/blob/master/test/fake_app/fake_app.rb

gem作成時、Rubyのバージョンをどこまで担保するか。JRubyは担保するか。

  • 保証はしないけど使えるかも!くらいの気持ち。
  • 公式にサポートしているバージョンが下限

最後の感想

  • ebihara9999
  • sinsokuさん cucamberとtest queueを使っている人がいると聞けてよかった。
  • shimaさん 初めて聞くようなことがよかった
  • hasadaさん(はっさん) 社内で使っていないようなtipsが聞けてよかった。
  • tk_hamaguchiさん factory girl.lintなど、知らないgemが知れてよかった。
  • two_sann(sanoさん)スタッフ 自分のプロジェクトの困りごとを共有できてよかった。