Ruby/Rails勉強会@関西に参加した

第33回 Ruby/Rails勉強会に参加した(告知ページ)。久しぶりにRuby成分を補給してきたよ。

「今更はじめるCucumber」について

最初の発表は id:Sixeight さんの「今更はじめるCucumber」。いきなり今回の目玉(僕にとって)です。

Cucumberってのはテストツールの一種で、プレーンテキストで書いたテストパターンを実行できるのが特徴。

その「プレーンテキストで書いたテストパターン」の例はこんな感じ。

Feature: Serve coffee
  In order to earn money
  Customers should be able to 
  buy coffee at all times

  Scenario: Buy last coffee
    Given there are 1 coffees left in the machine
    And I have deposited 1$
    When I press the coffee button
    Then I should be served a coffee

うむ、普通の文章だ。こういうのをfeatureって言うみたい。

日本語でも書ける。

フィーチャー: Serve coffee
  In order to earn money
  Customers should be able to 
  buy coffee at all times

  シナリオ: Buy last coffee
    前提 there are 1 coffees left in the machine
    かつ I have deposited 1$
    もし I press the coffee button
    ならば I should be served a coffee

こんな表も使える。

Given the following people exist:
  | name  | email           | phone |
  | Aslak | aslak@email.com | 123   |
  | Joe   | joe@email.com   | 234   |
  | Bryan | bryan@email.org | 456   |

分かりやすい。

あと、最後にCucumberの理念の話を聞いた。Cucumberは "outside-in" と言う考え方に基づいた開発を目指してるみたい。日本語に訳すと「外堀から埋めていく」。内部の詳細ではなく、実際の使い方、見た目といった外側の部分から進めていく、って意味だ。

他のテストツールは内部の細かい動作、それこそ関数1個ずつのテストに注目したものが多い(と思う)。そういうのはプログラマには分かりやすいんだけど、実際のお客さん、ユーザさんにはほとんど理解してもらえない。たいていプログラムのこと知らないからね。

Cucumberのテストパターンはプログラム知らない人にも読みやすいし、今後もそういうわかりやすさを目指した方向に開発が進んでいくと思う。なので、先にCucumberでテストを書いて、実際のお客さんと一緒になって動作の確認ができるようになるんじゃないのかな。後になってユーザさんから「これじゃなーい!」なんて悲鳴を聞かなくてもいい世の中になって欲しい。

Cucumberの詳細は以下を参照。

最後に

懇親会にも参加して、東プレRealforceな人を発見した。いいキーボードだよ。あと、「emacsずっと使っててCtrlキーがちょっとへこんでる」って人もいた。そりゃ押しすぎだろw。というわけで、参加者のみなさん、ありがとうございました。

あと、この勉強会に参加するとOSの内訳が「MacがシェアNo. 1。WindowsとUbuntuが残りの半分づつ」って感じで安心する。