- 自己紹介
- 普段触っている分野
- 今日参加した目的 など
- 本編
- 最後に感想等
- ebihara99999 主催者
- sinsokuさん 今日間に合った
- shimaさん SierでRails。社内にrails使いが少ないので参加。テストに関しては我流。
- hasadaさん(はっさん) 来月卒業。railsでアルバイト。リファクタが業務なので、テストコードをいっぱい書く必要がある。
- tk_hamaguchiさん Railsの社内リードエンジニア。分野は幅広い。
- two_sann(sanoさん)スタッフ 社内でrails。自発的な勉強が必要と思い参加。Rspec、cucamberを利用。
http://qiita.com/sinsoku/private/eee1c758e607b14ef23a たまに落ちる系 timecop(https://github.com/travisjeffery/timecop)
月初/月末で落ちるテスト
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はクラスメソッドは一回でもクラスが読み込まれると通ったことになる。
- detabase_rewinder readmeにDatabaseCleaner = DatabaseRewinder
- test queueを使って高速化 時間がかかる分だけ並列化 https://github.com/tmm1/test-queue シナリオ単位の分散(parallel testはファイル単位) 並列の方法はいくつかある。 dockerで実行基盤で固めておて、CIを使用する
どのくらいのテストケース数でペイする? -1hくらいテストかかる
- 必ず名詞にする
- describeの中に書いてスコープを限定する
- 書くのは楽だけど・・・直すのは・・
- shared_contextを使う(アウトプットも見やすい)
- メソッドで良くない?かを考える
- 多少冗長でも、分かりやすい方を優先(DRYを目指すのではなく読みやすい方に)
- 上に行ったり下に行ったりはテストではしたくない(メンテしたくない)
- テスト単位を分かりやすい単位にして可読性を上げる
- let! は外側のスコープで使わない方が良い
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
- 保証はしないけど使えるかも!くらいの気持ち。
- 公式にサポートしているバージョンが下限
- ebihara9999
- sinsokuさん cucamberとtest queueを使っている人がいると聞けてよかった。
- shimaさん 初めて聞くようなことがよかった
- hasadaさん(はっさん) 社内で使っていないようなtipsが聞けてよかった。
- tk_hamaguchiさん factory girl.lintなど、知らないgemが知れてよかった。
- two_sann(sanoさん)スタッフ 自分のプロジェクトの困りごとを共有できてよかった。