見出し画像

【応用47%】TECHCAMP名古屋18日目

どうも、ジュンです

いつもご視聴、コメント、高評価、ありがとうございます

TECHCAMP名古屋 73期 副業フリーランスコース18日目で学んだことについてお話します
Ruby on Railsで7個、RSpecで5個のことについて学んだので、それぞれ説明します

なお、今回は手順に関するものが多いので、GithubのURLを概要欄に貼りました。

★Ruby on Railsで学んだこと★

1.テスト環境導入手順
1
gem 'rspec-rails'
gem 'rails-controller-testing'
gem 'factory_bot_rails'
gem 'faker'
をGemfileのdevelopment,testに追加します
アンダーバーやハイフンに注意です
2
rails g rspec:installを実行し、rspecを使用可能状態にします
3
rspecコマンドの実行結果を見やすくするために、.specファイルに--format documentationを追加します

2.FactoryBotで使用する関数を省略するための方法
/spec/rails_helper.rbのRSpec.configure do |config|とendの中に
config.include FactoryBot::Syntax::Methods
を追加します

3.bundle install後のFactoryBot作成手順
1.specディレクトリの下にfactoriesディレクトリを作成します
2.その下にgroups.rbなどを追加します
3.factory :groups doとendの間にテストで利用するものを作成します

4.Modelのテストを追加する時の手順
1.specディレクトリの下にmodelsディレクトリを作成します
2.その下にモデル用のテストであるmessages_spec.rbを追加します
3.require 'rails_helper'を1行目に記述します
4.describeを使ってmodelのテストであることを表す記述をします
5.その中にdescribeを使ってテストの括りを作成します
6.その中にcontextを使って出来て欲しいことと出来てほしくないことの括りを作成します
7.その中にitを使ってどのようなテストをしたいかを記述します
8.その中でexpectメソッドとマッチャーを使い、何を見るかとどうなっていればいいかを記述します

5.deviseをrspecで使用できるようにする手順
1.specディレクトリの下にsupportディレクトリを作成します
2.supportディレクトリの下にcontroller_macros.rbを作成します
3.controller_macros.rbにdevise用の記述を追加します
4.spec/rails_helper.rbのRSpec.configure do |config|とendの間にdevise用の記述を追加します

6.Controllerのテストを追加する時の手順
1.specディレクトリの下にcontrollersディレクトリを作成します
2.その下にコントローラー用のテストであるmessages_controller_spec.rbを追加します
3.require 'rails_helper'を1行目に記述します
4.describeを使ってcontrollerのテストであることを表す記述をします
5.その中にdescribeを使ってテストの括りを作成します
6.その中に、contextを使ってログインしている時とログインしていない時の括りを作成します
7.その中に、itを使ってどのようなテストをしたいかを記述します
8.letを利用して、テストに利用するインスタンスをあらかじめ定義します
9.beforeメソッドを使って、context内であらかじめ実行しておく処理を記述します
10.itのtestの中でexpectメソッドとマッチャーを使い、どうなっていればいいかと何を見るかを記述します

7.テストの導入から実際にテストするまでをGuthubにまとめたもの
概要欄にURLを貼ったので興味がある方は見てください
https://github.com/EL93019205/chat-space/pull/8

★RSpecで学んだこと★
1.let
テスト中に利用するインスタンスをあらかじめ定義しておくことができます

2.subject
エクスペクテーションの引数が長くなってしまう場合に利用します
エクスペステーションの()を{}に変更する点に注意です

3.expect().not_to
マッチャーに一致しないことをテストする時に利用します

4.be_a_newマッチャー
引数で指定したクラスのインスタンスかつ未保存のレコードであるかどうかを確かめます

5.changeマッチャー
引数が変化したことを確かめます
レコードの総数が1増えたかどうかを確かめる時にも利用できます

今回の動画は以上です
今日もまたひとつ賢くなりました

この動画がいいなと思った方はチャンネル登録、高評価、
twitterのフォロー、よろしくお願いします

それではまた次の動画でお会いしましょう
ご視聴いただき、ありがとうございました

この記事が気に入ったらサポートをしてみませんか?