Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

書籍 RSpec Book | Hello Cucumber

概要

Hello Cucumber

内容

CucumberでHello Worldします。

・対象プロジェクト用のルートフォルダを作成する。仮にhoge
hoge配下にfeatures,specの2フォルダを作成する。
・任意の名前で*.featuresファイルを作成する。
日本語で記載する場合はファイルの先頭に以下を記載します

# language: ja

※編集内容は後述
・featuresフォルダ配下にstep_definitionsフォルダを作成する
・step_definitionsフォルダ配下に*_steps.rbファイルを作成する。
※編集内容は後述
・テストを実行=>失敗
・テストをパスするコードを作成する
・テストを実行=>成功

テストコード

hoge_says_hello.feature

# language: ja
機能: ほげは「Hello Hoge!」と言う

  ほげは「Hello Hoge!」と言います

  シナリオ: ほげは「Hello Hoge!」と言う
    前提 ほげの初期化
    もし ほげに挨拶した場合
    ならば 「Hello Hoge!」と言うこと

hoge_says_hello_steps.rb

# encoding: utf-8

# 便宜上実コードをここに配置指定ますが実際は違います
class HelloHoge
  def hello_hoge
    "Hello Hoge!"
  end
end

Given(/^ほげの初期化$/) do
  @hoge = HelloHoge.new
end

When(/^ほげに挨拶した場合$/) do
  @message = @hoge.hello_hoge
end

Then(/^(.*)」と言うこと$/) do |expected|
  @message.should == expected
end

テスト結果

$cucumber features
# language: ja
機能: ほげは「Hello Hoge!」と言う

  ほげは「Hello Hoge!」と言います

  シナリオ: ほげは「Hello Hoge!」と言う # features\hoge_says_hello.feature:6
    前提ほげの初期化                    # features/step_definitions/hoge_says_hello_steps.rb:9
    もしほげに挨拶した場合             # features/step_definitions/hoge_says_hello_steps.rb:13
    ならば「Hello Hoge!」と言うこと   # features/step_definitions/hoge_says_hello_steps.rb:17

1 scenario (1 passed)
3 steps (3 passed)
0m0.005s

参考

日本語によるフィーチャー記載方法について
キーワード英名 キーワード和名
feature "フィーチャ","機能"
background "背景"
scenario "シナリオ"
scenario_outline "シナリオアウトライン","シナリオテンプレート","テンプレ","シナリオテンプレ"
examples "例","サンプル"
given "*","前提"
when "*","もし"
then "*","ならば"
and "*","かつ"
but "*","しかし","但し","ただし"
given(code) "前提"
when(code) "もし"
then(code) "ならば"
and(code) "かつ"
but(code) "しかし","但し","ただし"

上記は、以下コマンドの実行結果を整形したものです。

$cucumber --i18n ja