心はいつも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を高速で復習する。9.4.2章。

9.4.2 destroyアクション、です。 テストを書く FactoryGir …

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

第6章ユーザーのモデルを作成する。です。ここから開発っぽくなってきます。って今ま …

MacにGUIのSQLite3クライアントを入れる。

ターミナルからコマンドたたけばいいだけですが、DBスキーマをちょっと確認したいと …

no image
Macで.htaccessを表示する設定

MacBook Air2代目。以前は行っていた.(ドット)がついたファイルをMa …

パーフェクトRuby 1章Rubyの概要

メタプログラミングRubyもいいのですが、余計な物語仕立てがどうも性に合わず、消 …

no image
Everyday Rails頑張る。3章モデルスペック

テスト書いてからコードの決意。 今のような環境がない時代のプログラマでしたが、自 …

no image
accepts_nested_attributes_for

everydayRailsやっていて、 phoneモデルのテストのところで ac …

WordPress子テーマの作り方

デザイン変更したairpucci、TwentyTwelveというWordPres …

Provisioning fileが作成できない!

iPhoneアプリを公開するために、itunes connectでProvisi …

Ruby on Railsを4.1.0にバージョンアップする

真央ロス真央廃を超えた腐まお状態な1ヶ月1週間、まるで娘が嫁に行った父親のごとし …