プログラミングOUTPUTブログ

看護師しながらプログラミング学習しています。

今日の学び

 

Rspecについて

RspecとはRubyonRailsのテストコードを書くために使うGem

・テストコードとはアプリケーションの挙動を確認するためのコードのこと

・テストコードは正常系(意図する操作を行った時の挙動を確認)と異常系(意図しない操作を行った時の挙動を確認)に大きく分類される
・テストコードの種類は単体テストコード(モデルやコントローラーなどの機能ごと)と結合テストコード(ユーザーがブラウザで操作する一連の流れ)


テストコードの記入
・describe→どのようなテストコードを書いているのか記述
・it→どのような結果になることを試しているのかを記述
・example→itに記述した内容の総称
・expect(X).to eq Y→Xの結果はYになる この部分が実際にコードを検証
・マッチャ→expectの中の記述と、結果との繋がりを表現するもの eqなど
・bundle execコマンド→たくさんのGemの依存関係を整理してくれるコマンド
rspecコマンド→テストコードを実行するコマンド
rails_helper→RSpecを利用する際に、共通の設定を書いておくファイル
・valid?メソッド→作成したデータが正しく保存されるかどうか確認するメソッド
・errorsメソッド→valid?にて判定されたデータのエラーを表示するメソッド
・full_messagesメソッド→エラーメッセージを出力するためのメソッド
・include→expect(X).to include(Y) Xの中にYという文字列が含まれているかどうかを確認することができるマッチャのこと

 

require 'rails_helper'
RSpec.describe User, type: :model do
describe 'ユーザー新規登録' do
it "nicknameが空だと登録できない" do
user = User.new(nickname: "", email: "kkk@gmail.com", password: "00000000", 〜省略〜)
user.valid?
expect(user.errors.full_messages).to include("Nickname can't be blank")
end

 

 

 

エラーメッセージを確認する時 binding.pryって何だ?ってなったので復習

デバッグをする時に使う

・binding.pryが存在する箇所でRails処理を一時停止し、その状態でコンソールを起動することができる

・確認した後は記述を消す

 

 <今日の一言>

エルレの生配信ライブめっちゃ良かった!早くライブ行きたいー