心はいつも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.2章。

9.2認可、です。 自分以外の人が自分のProfileを変更できないようにします …

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

3.1章は静的ページの追加。これをトップページとして後で色々追加していきます。 …

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

5.6演習です。 一問目。 リスト5.28の静的ページのテストコードは簡潔ですが …

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

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

Rubyの聖地、松江でRailsGirls Matsueに参加しました

旧暦神在月にRubyイベントに参加したい!と思ったところ、狙ったようにRubyW …

HerokuにRailsアプリをdeployする

Railsプロジェクトというよりも、Railsアプリっていうほうが正んでしょうか …

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

5.3レイアウトのリンク、です。 AboutはRailsらしくない、とおっしゃっ …

吉瀬美智子さんが美しすぎて、新サイト作りました

以前からやりたいと思っていたのですが、吉瀬美智子さんが美しすぎてやる気がでました …

SublimeText2をMacにインストールしてターミナルから起動できるようにする。

Windowsには秀丸っていう超優秀なテクストエディタがあって、無料でも使えるの …

no image
Everyday Rails3章 バリデーションをテストする

さっき、Aaronを削除したらテスト失敗することを確認しましたが、名前入力無しの …