はじめる!Cucumber-0.9.1 をやってみた

総じて、題名の通りcucumberの最初のドキュメントとしてはとてもいいんじゃないでしょうか。


twitterの基本機能みたいなヤツを実装しながらcucumberについて学んでいけます。


ご購入はコチラ。
はじめる! Cucumber - 達人出版会

最初の嵌りどころ

rspec2系が入っているとエラーになるのでuninstallした。
今は過渡期なので仕方ない(いや、いつも過渡期な気がするけど)。


どうしてもrvmなどで分けれない人は↓で対応できるかも。
rspec 2 と rspec 1.3.1 の共存 - って、なんでですか〜 - subtech

個人的に良かったとこ

日本語化が簡単になってる
ruby script/generate cucumber ja --webrat --rspec
tableish

こんな感じでデータを表現できる。

    かつ  以下のユーザごとのメッセージがある:
      | ユーザ    | メッセージ          | 投稿日時  |
      | alice  | 着席しています(大ホール)。 | 12時間前 |
      | bob    | ランチどうする。       | 10時間前 |
      | charls | もう食べたよ!?       | 9時間前  |      

named_scopeのテストをRSpecで書いてみたんだけど、cukeのtableを駆使すれば
そこそこ見やすくなると思った。
(factory_girlとか使えるんかな。あとで。)


あと余談だけど、textmateな人は shift + command + \ で選択したテーブルが整形される。
このショートカット無しのcuke開発は考えられないくらい便利。

デバッグ
    かつ  デバッグ

みたいな感じで書いてやると、自動生成されたhtmlが表示される。
(何かgemで入れないといけなかったけど、思い出せない)

シナリオアウトライン

複数のデータパターンの検証ができる。

@wipタグ

修正中のシナリオに対して印を付けておく事ができて、
そのシナリオのみテストができる。

シナリオのタグ付け

@wip以外にも、個別にタグ付けが可能。
rakeタスクに書けてCI(hudsonが一般的?)用などと分けることができる。
多分これは実プロジェクトでやるなら必須な感あり。
実際全てのfeaturesをテストすると少し時間が掛かる。

debugger

ruby-debugが簡単に使える。
最後の方にさらっと紹介されてたけど。結構強力。

Capybara

導入についても最後に触れてあります。

関係ないけど

!!という書き方がチラホラ出てくる。
目から鱗だわ。

  def signed_in?
    !!current_user
  end

他に思ったこと

i18n_generators は今回触ってみてとてもいい印象を持ったけど
このhands-onをやる上では、無くてもいいような気がした。


シナリオやstepをきれいにしていくと、どうしても正規表現だらけで見にくくなるという印象(6.4の辺り)。
が、ここは慣れなのかなぁ。


あと、Given、When、Then、Andなどは英語の方がしっくりな気がする。
(これは個人差か)