LoginSignup
0
0

ユーザーの結合テストコード

Posted at

目的

  • ログインについての結合テストコード

ユーザーログインの結合テストコード

exampleを整理

  • ログインできる時
    • 保存されているユーザーの情報と合致すればログインできる
    • トップページに移動する
    • トップページにログインページへ遷移するボタンがあることを確認する
    • ログインページに遷移する
    • 正しいユーザー情報を入力する
    • ログインボタンを押す
    • トップページへ遷移することを確認する
    • カーソルを合わせるとログアウトボタンが表示されることを確認する
    • サインアップページへ遷移するボタンやログインページへ遷移するボタンが表示されていないことを確認する
  • ログインできない時
    • 保存されているユーザーの情報と合致しないとログインできない
    • トップページに移動する
    • トップページにログインページへ遷移するボタンがあることを確認する
    • ログインページへ遷移する
    • ユーザー情報を入力する
    • ログインボタンを押す
    • ログインページへ戻されることを確認する
require 'rails_helper'

RSpec.describe 'ログイン', type: :system do
  before do
    @user = FactoryBot.create(:user)
  end
  context 'ログインできる時' do
    it '保存されているユーザーの情報と合致すればログインができる' do
      # トップページに移動する
      visit root_path
      # トップページにログインページへ遷移するボタンがあることを確認する
      expect(page).to have_content('ログイン')
      # ログインページへ遷移する
      visit new_user_session_path
      # 正しいユーザー情報を入力する
      fill_in 'Email', with: @user.email
      fill_in 'Password', with: @user.password
      # ログインボタンを押す
      find('input[name="commit"]').click
      # トップページへ遷移することを確認する
      expect(page).to have_current_path(root_path)
      # カーソルを合わせるとログアウトボタンが表示されることを確認する
      expect(
        find('.user_nav').find('span').hover
      ).to have_content('ログアウト')
      # サインアップページへ遷移するボタンやログインページへ遷移するボタンが表示されていないことを確認する
      expect(page).to have_no_content('新規登録')
      expect(page).to have_no_content('ログイン')
    end
  end
  context 'ログインできない時' do 
    it '保存されているユーザーの情報と合致しないとログイン化できない' do
      # トップページに移動する
      visit root_path
      # トップページにログインページへ遷移するボタンがあることを確認する
      expect(page).to have_content('ログイン')
      # ログインページへ遷移する
      visit new_user_session_path
      # ユーザー情報を入力する
      fill_in 'Email', with: ''
      fill_in 'Password', with: ''
      # ログインボタンを押す
      find('input[name="commit"]').click
      # ログインページへ戻されることを確認する
      expect(page).to have_current_path(new_user_session_path)
    end
  end
end

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0