2013 2月12日 14:13
Cucumber のフィーチャの文法 - Gherkin
Cucumber 利用していますか? 基本的な使い方はわかるんだけど、なんだかもっと上手く使えるんじゃないだろうか?と、もやもやしながら使っています。 少くとも私の周りには Cucumber について情報交換できる人がいないです。 それでも、SlideShare や Speaker Deck なんかに公開されたスライドでよくみかけるので、使い込んでるところでは使い込まれているのだと思います。 Cucumber は Rails プロジェクト以外でも利用されているようで、範囲が広いです。もうちょっといろんな情報がWeb上に流れていても良い気がします。 私が知る限りでは Cucumber についてもっと詳しく書かれているのは The Rspec Book です。 前置きはさておき、 Cucumber の *.feature は Gherkin という 言語で書きます。 その文法について調べたのでそのメモを整理しておきます。 ちなみにこの内容はソース読んだり、Wikiに書かれているものを参考したもので、仕様として記述されてない情報もあるので未来のバージョンでは予告なく変更される部分があるかもしれません。 こんな長くて不正確な記事読みたくないよ!という人は BNF を読むのが手っ取りです。 というか、BNFが読める人は読みましょう。 むしろ、もっとはやく読めばよかった。 具体例 Gherukinのという言語で書いた文書の例を上げておきます。 内容はシステムに関するものにしませんでした。 # language: ja @blog フィーチャ: ブログを書く ブログを書くには本人のやる気と書く時間が必要です。 アウトプットは次のインプットに繋がるので積極的に行なうべきです。 # これはコメントでタグの後にはかけない # @ではじまるのはタグ @good シナリオ: ブログが書ける ブログが書ける場合はやる気と時間があるのです。 # ネタがないとかけないです。 前提 ネタがある # 時間がないとかけないです かつ 納期に終われていない # 先輩とかいないですけど もし 先輩にブログを書けと言われた # オチがない ならば ブログが書けている @bad シナリオ: デスマ中はブログが書けない デスマ中ダトソレドコロジャナインダ!!