【応用45%】TECHCAMP名古屋16日目
Ruby on Railsで9個、RSpecで23個のことについて学んだので、それぞれ説明します
★Ruby on Railsで学んだこと★
1.RSpecインストール時に作成されるrails_helper.rbとは
RailsにおいてRSpecを利用する際に、共通の設定を書いておくファイルです
各テスト用ファイルでこのファイルを読み込むことで、共通の設定や、メソッドを適用します
2.RSpecインストール時に作成されるspec_helper.rbとは
RSpec用の共通の設定を書いておくファイルですが、こちらはRSpecをRailsなしで利用する際に利用します
3..rspecに記述する--format documentationの意味
rspecを実行した時にterminalにきれいに出力してくれます
4.RSpecを実行するコマンド
bundle exec rspec
5.specファイルを置く場所
specの下にmodelsディレクトリやcontrollersディレクトリを作成し、その下にspecファイルを置きます
6.モデルクラスで最大6文字の制約を付与する方法
validates :nickname, length: {maximum: 6}
validatesでカラム名を指定し、レングス マキシマム 6とします
7.データベース側で、既存のカラムに文字数制限を付与する方法
rails g migration ChangeNicknameFromUsers
チェンジ カラム名 フロム モデル名
でマイグレーションファイルを作成します
add_columnは使わず、
change_column :users, :nickname, :string, limit: 6
チェンジカラムを使い、リミット文字数とします
8.RSpecを導入する方法
1.Gemfileにgem ‘rspec-rails'を記述します
2.bundle installを実行します
3.rails g rspec:installを実行します
4.terminalでテスト実行時に整形して表示するために.rspecに--format documentationを記述します
5.specディレクトリにmodelsディレクトリとcontrollersディレクトリを作成します
6.modelsディレクトリやcontrollersディレクトリにテストコードを作成します
7.bundle exec rspecが実行できればOKです
9.factory_botを導入する方法
1.Gemfileにgem ’factory_bot_rails’を記述します
2.bundle installします
3.rspecでより短いコードでrspecが記述できるように、spec/rails_helper.rbに
config.include FactoryBot::Syntax::Methodsを記述します
★RSpecで学んだこと★
1.describe
テストのまとまりを作成します
2.example
実際に動作するテストコードのまとまりのことです
3.it
exampleを作成します
4.エクスペクテーション
実際に評価される式のことです
5.expectメソッド
エクスペクテーションの文法の1つです
expect(X).to eq Yとすると、
Xの部分に入れた式が、Yと等しい場合はテストが成功します
除くという意味を持つexceptとのつづりの違いに注意です
6.valid?メソッド
バリデーションにより保存ができる状態であるかどうかを確かめます
7.errorsメソッド
valid?メソッドを実行した時、バリデーションに引っかかればmessagesに何かしらのエラー文が入ります
8.マッチャ
テストの成功条件を表します
eq、include、be_validなどがあります
9.eqマッチャ
等しいかどうかを確かめます
10.includeマッチャ
指定した文字列が含まれているかどうかを確かめます
11.be_validマッチャ
すべてのバリデーションをクリアしているかどうかを確かめます
12.factory_botとは
簡単にダミーのインスタンスを作成することのできるGemです
13.factory_botのbuildメソッド
user = FactoryBot.build(:user)
引数にモデルのクラス名をシンボルで指定すると、FactoryBotクラスで作成したインスタンスを作成します
14.factory_botのcreateメソッド
buildメソッドと同じ動作をしたあと、実際にDBに保存します
テストが終わったあとは、DBがロールバック、つまりDBから削除されます
15.factory_botの記法の省略
spec/rails_helper.rbにconfig.include FactoryBot::Syntax::Methodsを追加すると
buildメソッドやcreateメソッドを利用する時にFactoryBot.と記述する必要がなくなります
user = FactoryBot.build(:user)
user = build(:user)
16.すべてのrspecファイルの1行目に記述しなければならないもの
require ‘rails_helper’
17.factory_botのbuildメソッドやcreateメソッドで、値を書き換えてセットする方法
モデル名のシンボルに続けて、カラム名のシンボルと値をセットすることで上書きします
user = build(:user)
user = build(:user, nickname: “shinbo”)
18.テストコードを書く際の原則
1.各exampleで期待する値は1つ
2.期待する結果をはっきりわかりやすく記述
3.起きて欲しいこと起きて欲しくないこと両方をテストする
4.境界値をテストする
5.可読性を考えつつ、適度にDRYにする
19.can't be blank
NOT NULL制約が付与されている場合に出るエラー文です
20.doesn't match Password
passwordとpassword_confirmationが不一致の場合に出るエラー文です
21.has already been taken
一意性制約を付与したカラムに重複した値がある場合に出るエラー文です
22.is too short (minimum is 6 characters)
文字数が足りない場合に出るエラー文です
23.is too long (maximum is 6 characters)
文字数オーバーの時に出るエラー文です
オマケ
TECHCAMPで作成した
Webアプリケーションを紹介します
企業に見せるポートフォリオにはしないので
紹介だけです
画面はこんな感じです
ユーザーアカウントを作成できます
グループを作成できます
グループ内でメッセージの投稿や、
画像の投稿をすることができます
ユーザー名を変更したり、
メールアドレスを変更することができます
グループ名を変更できたり、
グループ内のメンバーを変更できます
以上、ざっくり紹介でした
この記事が気に入ったらサポートをしてみませんか?