心はいつもAirPucci (空元気でもいいから)

毎日がPucciを着ているような気分

RailsTutorial4.0を高速で復習する。8.3章。

   


8.3Cucumberの紹介 (オプション)

Cucumberは振舞駆動開発用のツールだそうです。最近はどうなんでしょ?使われているんでしょうか?

テスト本の

おすすめは「The RSpec Book 」(David Chelimsky著)、「 Rails 3 in Action 」(Ryan Bigg、Yehuda Katz著)、 「The Cucumber Book」(Matt Wynne、Aslak Hellesøy著)

だそうです。

8.3.1インストールと設定、です。

Cucumber環境づくり

cucumber-rails gemとdatabase_cleanerをgemに追加する必要がありますが、もう入っていました。

rails generate cucumber:install

これでcucumberに必要な環境ができます。

8.3.2フィーチャーとステップ、です。

Cucumberでは、Gherkin (キュウリ属の植物: ガーキン) と呼ばれるテキストベースの言語を使用して、アプリケーションに期待される振る舞いを記述します。

聞いた事がなかったです。

サインインのテストをCucumberで書いてみる

リスト8.32 ユーザーのサインインをテストするCucumberのフィーチャーファイル。
features/signing_in.feature

Feature: Signing in

  Scenario: Unsuccessful signin
    Given a user visits the signin page
    When he submits invalid signin information
    Then he should see an error message

  Scenario: Successful signin
    Given a user visits the signin page
      And the user has an account
    When the user submits valid signin information
    Then he should see his profile page
      And he should see a signout link

リスト8.33 サインインフィーチャーがパスするための完全なステップ定義。
features/step_definitions/authentication_steps.rb

Given /^a user visits the signin page$/ do
  visit signin_path
end

When /^he submits invalid signin information$/ do
  click_button "Sign in"
end

Then /^he should see an error message$/ do
  expect(page).to have_selector('div.alert.alert-error')
end

Given /^the user has an account$/ do
  @user = User.create(name: "Example User", email: "user@example.com",
                      password: "foobar", password_confirmation: "foobar")
end

When /^the user submits valid signin information$/ do
  fill_in "Email",    with: @user.email
  fill_in "Password", with: @user.password
  click_button "Sign in"
end

Then /^he should see his profile page$/ do
  expect(page).to have_title(@user.name)
end

Then /^he should see a signout link$/ do
  expect(page).to have_link('Sign out', href: signout_path)
end

Cucumberでテストシナリオ書いて、振る舞いはカピバラさんで書くというもののようです。

bundle exec cucumber features/

これでテストはパス。Cucumber見やすいと思いますが、なんだかRSpecのほうがいいかも。

8.3.3対比: RSpecのカスタムマッチャー、です。

これはとばします。

8.4最後に、です。

変更をmasterブランチにマージします。herokuにはpushしません。

8.5演習はとばします。

次は、
第9章 ユーザーの更新・表示・削除
です。

 - テクニカル ,

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

  関連記事

no image
iPhoneのKindleアプリでChip Conley氏の本を読んでみました。その2

iPadの発売がようやく発表されました。私個人としては読書端末としての利用を期待 …

no image
Google Appsで問い合わせフォームを作りました

とっても簡単でした。Google Appsでこのブログに問い合わせフォームを設置 …

no image
RailsTutorial4.0を高速で復習する。3.5章。つづき。

3.5演習の2もんめをやります。 2.お気付きの方もいると思いますが、リスト3. …

no image
Mac OS Xでftp × Cyberduck

WordPressにプラグインを入れたくてダウンロードしてきました。 そういえば …

BD再生のオープンソース

メディアはシリコンすら持ちたくない主義なのですが、どうしてもBluelay Di …

no image
RailsTutorial4.0を高速で復習する。終わりました。

作りたいサービスがあってコーディング開始していたのですが、もう1回振り返り学習し …

no image
コンビニで買った携帯充電器がUSB充電ケーブルとして使えて意外に便利だった件

ITの最大苦手項目、 充電。。。特にiPhone多様するようになって以来、ガラケ …

no image
サーバー移転しました(2度目)

airpucci始まって2度目のサーバー移転しました。今まで入れていたプラグイン …

no image
RailsTutorial4.0を高速で復習する。5.6章。演習2問目。

5.6演習、2問目です。これをやったら、すっ飛ばしているリンク貼り作業をします。 …

RailsTutorial4.0を高速で復習する。5.1.2章。

5.1.2BootstrapとカスタムCSS、です。 今までdivについていたイ …