試験パスしない問題
昼までの空き時間で云々してみることに。
Rails Tutorial の 8 章あたり。以下な試験にパスしていません。
describe "Authentication" do describe "signin" do before { visit signin_path } describe "with invalid information" do before { click_button "Sign in" } it { should have_selector('title', text: 'Sign in') } it { should have_selector('div.alert.alert-error', text: 'Invalid') }
ええと、rake routes によると signin なナニは以下なのか。
signin /signin(.:format) sessions#new
SessionsController の new アクションの定義は以下。
def new end
ええと、app/view/sessions/new.html.erb なのかな。確かに Sign in なボタンが定義されております。
<%= form_for(:session, url: sessions_path) do |f| %> <%= f.label :email %> <%= f.text_field :email %> <%= f.label :password %> <%= f.password_field :password %> <%= f.submit "Sign in", class: "btn btn-large btn-primary" %> <% end %>
試験としては何も入力せずにボタンクリックしたら (with invalid information) エラーになってね、というナニ。url は sessions_path となってますね。rake routes な出力によれば以下なのかどうか。
sessions POST /sessions(.:format) sessions#create
SessionsController の create アクションの定義が以下。
def create user = User.find_by_email(params[:session][:email].downcase) if user && user.authenticate(params[:session][:password]) # ユーザーをサインインさせ、ユーザーのshowページにリダイレクトする else flash.now[:error] = 'Invalid email/password combination' render 'new' end end
んむむ。ここまでの記述を見た限りでは試験は成功しても良さげに見えます。rails s して動作確認してみるも期待通りの動作。
というあたりまでは
昨日確認できてた部分だったり。つーかやっぱ分からん。何故に試験にパスしないのか。log/test.log があったので中身を見てみるもその通りだし。謎です。
もう意味分からんので以下に push して寝る。