月曜日までに考えておきます

ITネタとゲームネタ中心に興味のあること色々書きます。

Shibuya.rb 3/20拡大版に参加してきました

体調崩していて参加レポートちょっと遅れましたが、この間の水曜日にShibuya.rbの拡大版に参加してきたのでレポートします。 普段は第三水曜の19:30〜21:30なのですが、この日は祭日ということで14:00〜18:00の拡大版でした。

参加人数も普段より多く、いくつかのグループに分かれて各自興味のあることについて話すという感じでした。

私は今回、以下の点に興味があったので、これらに参加してきました。

  • テストコード
  • vagrant

テストコード

どう書くのか

RSpec書いてみたいけど、どう書けばいいかわからない、というところから始まったので、私は自分が覚えた時に使った以下の2つのサイトを教えたらどうやらニーズにマッチしたようでした。

RSpecの周辺ツール

趣味&独学でやってたときは、

  • テストデータ生成:factory_girl
  • 自動テスト実行:spork+guard

でやっていたのだけど、会社で今やってるプロジェクトはmashinistとZenTest使っているので、実際に回りどういうの使ってるのか気になってたのでこの話振ってみました。

テストデータ自動生成

factory_girlかfabricationが人気らしい。machinistはちょいマニアックとのこと。 でもfactory_girlはcapybara-webkitと組み合わせるとうまくデータが作れない、みたいな話がありました。(未検証)

headless

phantom.js + poltergeist でのテストやってる人がいたけど結局capybara-webkitとかと同じで別に楽ではないよ、って話がきけました。

自動テスト実行

ZenTestはどうもオワコンらしい (´・ω・`) あと、そもそも保存したらテスト実行よりも行番号指定で実行できたほうが良くない、みたいなこと言ってる人が何人も居たので今のはやりはそれなのかも。あと、保存したら自動テスト実行は開発者のスタイルによるので、入れたい人だけ入れればいいんじゃない、という話も。

turnip

@IR3 さんに教えてもらったgem。

jnicklas/turnip · GitHub

RSpecにcucumberのシナリオを書けるものらしい(?)

  • RSpecに一本化できる
  • シナリオにRubyのコードが入れ込めるので、シナリオの書きづらい正規表現が"#{}を使って書けるので捗るらしい

=> もうちょっと調べてみて問題無さげなら実際に会社のプロジェクトでも使ってみようと思います。

vagrant

gemでインストールしてコマンドラインでVirtualBoxインスタンスを操作できるというもの。chefと組み合わせて使うこともでき、いろいろできそうな気がします。

参考:Vagrant - naoyaのはてなダイアリー

自分が思いついたところだと、開発者の開発環境を作ったりとか(VMを直接共有するより構成管理しやすい)、テストの時だけVM作って終わったら壊す、とか?CI向け。 あとはインフラエンジニアがchefのテストに使うのいいんじゃないか、という話も聞けました。

LT

今回私はLTしてませんが、良い話いろいろ聞けました。テストしづらいコードの話とか、TDDの工夫(特に外部サービス使う時の話)、RSpec metadata、の話なんかはすぐに役立ちそうなところが多くてよかったです。