おもしろwebサービス開発日記

Ruby や Rails を中心に、web技術について書いています

Rails勉強会@東京第38回に参加した(その1)

今日は、Rails勉強会@東京第38回に参加しました。

Rails勉強会@東京38回

前半はRspecとCucumberについて、後半はRails2.3.0についてのセッションに参加しました。とりあえず今日は前半セッションのメモを上げておきます。後半は明日。

RspecとCucumberについて

  • ModelのテストはRspecがよい
  • ControllerやViewなどのテストは基本Cucumberにして、Rspecは薄くするとよいかも
    • JSONXMLを返したり、コントローラが膨らんだ場合はRSpec使うとよい

cucumber

  • .feature
    • プレインテキストでストーリーを書く
  • steps/*.rb
    • featureの文字列を正規表現を使ってマッチする部分を探し、マッチしたときに実行する処理を書くところ

Webrat

  • cucumberで使ってるライブラリ
  • Webアプリを外から操作するDSLセット
  • リンクを辿ったりボタンを押したりフォームに入力したりできる
    • idやclassやnameではなく、ラベルを使って入力が可能!
    • リンクもアンカーテキストで書ける!!
    • リンクの検証も出来る!!

アンカーテキストやラベルを使ってテストが書けると、xpathを指定するのに比べてテストの変更が起きる可能性がぐっと下がるのでcucumberいいなーと思いました。

Q&Aの一部

seleniumとどう使い分けるか
  • seleniumはリンクやボタンの指定をxpathでするのでcucumberと比べ仕様の変更に弱い。
  • アンカーテキストも変わるときあるけど、ユーザから見て変更する流れがわかりやすい。
  • seleniumは必要最小限で、残りはcucumberでやるのがコストが安いのでは
seleniumをすごくしたらいいのでは
  • 良いアイデア
  • でもseleniumだと設計をドライブできないのが難点
シナリオを生成するツールなどはあるか
  • いまのところない。いいアイデア
  • でも結局はユーザが作ったひな形をPGがまとめてユーザに確認をとるスタイルが一番いいのでは。
一つのシナリオの一部を実行するようなことができるか?

シナリオの中で実行する行数を指定することができる。

RSpec

Rspec本が5月にリリース。現在でもPDFでなら手に入る。欲しい。
The Rspec Book

感想

これまでcucumberに大しての印象は、「やるに越した事はないけど、実際にやるには工数がかかりすぎて使えないかなー」だったのですが、今日のセッションに出て「コントローラやビューのテストの代替として使えるかも!」に変わりました。今度使ってみます。