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

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

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

   


8.1.2サインインをテストする、です。

Signin(ログイン)失敗の場合

signin_failure_mockup_bootstrap
ログインに失敗したとき、メッセージを表示します。

ログイン失敗はどんなときにおきるのでしょう?
ID入力間違い
パスワード入力間違い、
ですね。

Signin(ログイン)失敗のテストを書く

リスト8.5ではなく、ちょっと飛ばして
リスト8.12 サインインが失敗したときの正しいコード。
spec/requests/authentication_pages_spec.rb

describe "Authentication" do

  subject { page }

  describe "with invalid information" do
      before { click_button "Sign in" }

      it { should have_title('Sign in') }
      it { should have_selector('div.alert.alert-error', text: 'Invalid') }

      describe "after visiting another page" do
        before { click_link "Home" }
        it { should_not have_selector('div.alert.alert-error') }
      end
    end
  end
end

have_selectorはCapybaraのメソッド。特定のセレクタ要素 (HTMLタグなど) があるかどうかをチェックします。

Signin(ログイン)成功の場合

signin_success_mockup_bootstrap

ログイン成功後はプロファイルページの表示です。
メニューからSigninがなくなり、かわりにAccountが追加されていて、profile,settings,signoutがプルダウンできます。

リスト8.6 サインインに成功したときのテスト。
spec/requests/authentication_pages_spec.rb

require 'spec_helper'

describe "Authentication" do
略
  describe "signin" do
    before { visit signin_path }
略
    describe "with valid information" do
      let(:user) { FactoryGirl.create(:user) }
      before do
        fill_in "Email",    with: user.email.upcase
        fill_in "Password", with: user.password
        click_button "Sign in"
      end

      it { should have_title(user.name) }
      it { should have_link('Profile', href: user_path(user)) }
      it { should have_link('Sign out', href: signout_path) }
      it { should_not have_link('Sign in', href: signin_path) }
    end
  end
end

have_linkはCapybaraのメソッド。リンクテキストを引数にとる。 click_linkよりもキチンとテストできそう。

当然ながらテストは失敗です。

次は、
8.1.3サインインのフォーム
です。

 - テクニカル ,

Message

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

  関連記事

no image
RailsTutorial4.0を高速で復習する。7.2章

7.2ユーザー登録フォーム、です。 ユーザー認証も登録も、モデルは作ってあるので …

MicrosoftのFutureVision 2019 vs 2011 vs 2010

Wiredで取り上げられたので、今日はMSのFutureVisionが話題でした …

no image
gamilアカウントが乗っ取られました

朝起きてすぐ行うメール確認。iphoneでgmail接続できないってエラーが出る …

no image
RailsTutorial4.0を高速で復習する。3.2章。

3.2章は最初のテストです。 Railsチュートリアルは、アプリケーションの振る …

民●党批判したら検索順位が落ちたのか?

このブログ、airpucciのドメインも元のwww.airpucci.comに戻 …

詳解 Objective-C 2.0 第3版

Rubyの言語仕様を勉強する傍ら、Objective-Cも言語仕様ベースで勉強し …

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

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

初めてのRuby2章 2.2ハッシュ

ハッシュ ハッシュとは、オブジェクトにキーを対応させたもの。 C++,Javaで …

no image
Ruby on Railsのインストール

Rubyのアップデートが終わったので、いよいよRailsをインストールします。 …

no image
RailsTutorial4.0を高速で復習する。9.3.4章。

9.3.4パーシャルのリファクタリング、です。 テストパスしているのでリファクタ …