SMARTCAMP Engineer Blog

スマートキャンプ株式会社(SMARTCAMP Co., Ltd.)のエンジニアブログです。業務で取り入れた新しい技術や試行錯誤を知見として共有していきます。

五反田.rb 37 にてテスト設計について発表してきました #gotandarb

f:id:ug_23:20190628123226p:plain

オフィスが変わり、自席から窓を眺めると東京タワーが見えるようになりました。
スマートキャンプの今川( @ug23_ )です。

2019年6月26日に五反田.rbにLT枠で参加してきました。

gotanda-rb.connpass.com

自分含め、4名の方が発表したのでそれぞれ紹介しようと思います。

@kutaike1504さん ぼくらのかんがえたさいきょうのfactory_bot

speakerdeck.com

RSpecに不可欠なfactory_botの改善を行った、という発表でした。

  • let地獄
  • そこからそれらを一発で作成できるようにする
  • 一発でやらないと面倒だったのは認証周りだったのでそこをDIして解決
  • でも改善にはむちゃくちゃ時間がかかる…
  • みんなどうしてるの…?

という感じでした。

チームごとに方針を決めて守る、変えるときは一気に変える、など試行錯誤していくしかないのかなという印象でした。

@saiid_kkさん RSpecあなたならどう書く?

speakerdeck.com

聴衆参加型のLTでした。RSpecでみんなどう書いてる?という二択に答えながら聞きました。参考までに、私の意見は以下の通りでした。

  1. Request Specは: Controllerごと
  2. System Specは: どちらでもない
  3. Shared Examplesは: あまり使わない
  4. before/after(:all)は: 使ってもいいと思う
  5. NestedGroupは: まだ遭遇してない…
  6. テストデータの定義は: デフォルト値ぐらいはいれておきたい
  7. 時間は: 作る (後述)
  8. テストの説明は: 日本語
  9. 複雑な事前データは: beforeでもletでも場合によりけり
  10. itスコープ内は: 柔軟に

「時間作る?止める?」の議論については、毎回 Date.today などで生成したほうが思わぬバグに気付ける可能性もあるので毎回つくっておくのがよいのかなと思ってます。

私もまだそこまでRSpec書けてないのでRSpecらしいコード書けるように精進しようと思いました。

@ug23_ 残す価値のあるテスト設計

speakerdeck.com

スマートキャンプのエンジニアとして初のパブリックなLTのようでした。ちなみに個人としても初めてでした。楽しかったー!

テストとマインドマップ相性がいいと勝手に思っているので参考になったら嬉しいです。

@walkersumidaさん CircleCIで docker-compose最強?

speakerdeck.com

あまり記事が上がっていないらしいですが、CircleCIで普通にdocker-composeが使えるようになった(なってた?)らしいです。

ローカル環境とテスト環境の差分でコケて苦しむ、というつらみから解消されるようでした。

そのままQiitaにも投稿されていました。

qiita.com

飛び込みLT @nontak2 さん AWS Summit 2019行ってきた

飛び込みでAWS Summitで聞いてきた話を話されていました。

LTの中ではRailsにおける負荷テストツールについて触れていました。たしかに、Rubyistが使う負荷テストツールってなんでしょうね。
私は以前の記事の通り、Scalaを扱っていたのでGatlingを使いがちです。

tech.smartcamp.co.jp

tech.smartcamp.co.jp

最後に

久しぶりにコミュニティイベントに参加しましたが、いろんな人と話したり、新しい発見や刺激がたくさんあってよかったです。そして定期的にアウトプットするの大事だなと思います。

会場のZealsさん及びオーガナイザーの @terry_i_ さんありがとうございました!

スマートキャンプではRSpec書きながら開発していきたいRailsエンジニアを募集しています。

ぜひ新しいオフィスに遊びにきてください!

hrmos.co