課題内容

[正常系]
・ユーザーの新規作成+flashメッセージ、編集ができること
・ログインが成功すること+flashメッセージが表示されること
・ログインした状態でタスクの新規作成、編集、削除ができること+それぞれにflashメッセージが表示される
・マイページにユーザーが新規作成したタスクが表示されること

[異常系]
・メールアドレスが未入力時にユーザーの新規作成、編集が失敗すること+新規作成失敗時にflashメッセージ
・登録済メールアドレス使用時にユーザーの新規作成+flashメッセージ、編集が失敗すること+新規作成失敗時にflashメッセージ
・フォーム未入力時にログインが失敗すること+flashメッセージ
・ログインしていないユーザーでタスクの新規作成、編集、マイページへの遷移ができないこと+flashメッセージ
・他のユーザーのユーザー編集、タスク編集ページへの遷移ができないこと
・タスクの新規作成・編集が失敗した場合、更新しようとしたデータが画面上に表示されていないこと
[その他の要件]

・login処理はmoduleを作成して共通化して、specファイル間で呼び出せるようにしてください。
・--format documentation を設定したテスト結果の画像をPRに添付してください。
・spec実行時にブラウザの表示有無を切り替える設定を spec/support 以下に追加してください。
・実行するテストケースを限定できる設定を spec_helper.rb の50行目辺りを確認して有効化してください。
・テストデータの作成にはFactoryBotやletを利用してください。

・ブラウザの挙動は gem webdrivers で確認してください。
<https://everydayrails.com/2019/04/09/chromedriver-helper-webdrivers.html>

手 順

まず、webdriversを使用せよとのことだったので、URLから確認してgemを加えます。ついでにcapybaraも追加します

Gemfile
~
group :test do
  gem 'capybara'
  gem 'webdrivers'
end

できたらbudle installを実行

「実行するテストケースを限定できる設定を spec_helper.rb の50行目辺りを確認して有効化してください。」より、50行目あたりを確認するとこんな記載がある

 spec_helper.rb	

=begin
	# This allows you to limit a spec run to individual examples or groups
  # you care about by tagging them with `:focus` metadata. When nothing
  # is tagged with `:focus`, all examples get run. RSpec also provides
  # aliases for `it`, `describe`, and `context` that include `:focus`
  # metadata: `fit`, `fdescribe` and `fcontext`, respectively.
  config.filter_run_when_matching :focus

直訳すると...
	 #これにより、スペックの実行を個々の例またはグループに制限できます。
   #`:focus`メタデータでタグ付けすることで気になります。 何もないとき
   #は `:focus`でタグ付けされ、すべての例が実行されます。 RSpecはまた提供します
   #`:focus`を含む` it`、 `describe`、および`context`のエイリアス
   #メタデータ:それぞれ `fit`、` fdescribe`、`fcontext`。

となっていることから、=beginを下げて、config.filter_run_when_matching :focus のコメントアウトを外す

テストの出力結果を見やすくするため、.rspecに--format documentation

を追記する

「login処理はmoduleを作成して共通化して、specファイル間で呼び出せるようにしてください」との指定があるので、ログイン機能をモジュール化する

・rails_helper.rbにおいてコメントアウトされている Dir[Rails.root.join('spec', 'support', '**', '*.rb')].sort.each { |f| require f }

をコメントアウトを外してあげる

・rails_helper.rbの下方ににあるRSpec.configure do |config| 以下にconfig.include Macros と記載する。(名前は何でも良い)