Rails, cucumberで日本語feature書いたけど。。。

というわけで、前回の続きです。

Rails, cucumberでしあわせになりたい

やっていた時点での最新

  • rspec 1.2.6
  • rspec-rails 1.2.6
  • webrat 0.4.4
  • cucumber 0.3.9

すでにこの時点で、

Featureがフィーチャ、Senarioがシナリオ、Givenが前提、、などと書く事ができました。

さらに、features/step_definitions/webrat_steps.rbを日本語対応してfeatures/manage_posts.feature自体も日本語で書きたいので、下記をインストールして実行しました。

% sudo gem install moro-miso
% ./script/generate miso
 create  features/step_definitions/webrat_ja_steps.rb
 create  features/step_definitions/web_extra_ja_steps.rb

ちょっと中身をみてます。

% grep When webrat_ja_steps.rb
When(/^"([^\"]*)"ページを表示する$/, &visit)
When /^"([^\"]*)"ボタンをクリックする$/ do |button|
  When %Q(I press "#{button}")
When /^"([^\"]*)"リンクをクリックする$/ do |link|
  When %Q(I follow "#{link}")
When /^"([^\"]*)"に"([^\"]*)"と入力する$/ do |field, value|
  When %Q(I fill in "#{field}" with "#{value}")
When /^"([^\"]*)"から"([^\"]*)"を選択する$/ do |field, value|
  When %Q(I select "#{value}" from "#{field}")
# When I select "December 25, 2008 10:00" as the date and time 
When /^日時として"([^\"]*)"を選択する$/ do |time|
  When %Q(I select "#{time}" as the date and time)
# When I select "November 23, 2004 11:20" as the "Preferred" date and time
When /^"([^\"]*)"の日時として"([^\"]*)"を選択する$/ do |datetime_label, datetime|
  When %Q(I select "#{datetime_label}" as the "#{datetime}" date and time)
# When I select "2:20PM" as the time
When /^日付として"([^\"]*)"を選択する$/ do |time|
  When %Q(I select "#{time}" as the time)
# When I select "7:30AM" as the "Gym" time
When /^"([^\"]*)"の日付として"([^\"]*)"を選択する$/ do |time_label, time|
  When %Q(I select "#{time_label}" as the "#{time}" time)
# When I select "February 20, 1981" as the date
When /^時間として"([^\"]*)"を選択する$/ do |date|
  When %Q(I select "#{date}" as the date)
# When I select "April 26, 1982" as the "Date of Birth" date
When /^"([^\"]*)"の時間として"([^\"]*)"を選択する$/ do |date_label, date|
  When %Q(I select "#{datetime_label}" as the "#{date}" date)
When /^"([^\"]*)"をチェックする$/ do |field|
  When %Q(I check "#{field}")
When /^"([^\"]*)"のチェックを外す$/ do |field|
  When %Q(I uncheck "#{field}")
When /^"([^\"]*)"を選択する$/ do |field|
  When %Q(I choose "#{field}")
When /^"([^\"]*)"としてファイル"([^\"]*)"を選択する$/ do |field, path|
  When %Q(I attach the file at "#{path}" to "#{field}")

これは便利。感謝です。

でfeatureの中身は、

フィーチャ: 記事
  In order to [goal]
  [stakeholder]
  wants [behaviour]

  背景:
    前提 ユニークIDを持っていること

  シナリオ: 新しい記事の登録をする。
    前提 "docomo"でアクセスしている
    もし 記事登録ページへ"email"が"test@example.com"でアクセスする
    かつ "お名前"に"わたくしです"と入力する
    かつ "メールアドレス"に"hoge@example.com"と入力する
    かつ "送信する"ボタンをクリックする

    ならば "わたくしです"と表示されていること
    かつ "hoge@example.com"と表示されていること

これで、rake featuresと実行すればテストできる!!

ただ上記の例で書いている通り、前提に携帯電話のエージェントを指定させているのですが、これはjpmobileでテストしたかった名残です。

結構頑張って色々コード書いたのですが、文字コードの問題なのかうまい事テストできなかったです。これもあとで出来るようにしておきたいな。

PCだけならすごく便利!

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中