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の詳細は以下を参照。