アーカイブ:2020年 3月
-
Flashメッセージとは? リダイレクトを表す「redirect_to」で使い、次のリクエスト時に特定のちょっとしたメッセージを渡すことができるRailsが用意している機能です。また、「render」で同じリクエスト内でのメッセージの受け…
-
データ取得系 where データを絞り込みます。「ActiveRecord_Relation」というクラスが返ってきます。検索にヒットしたデータは全件データを取得できますが、プログラム上でインスタンスとして自由に操作することはできないで…
-
メソッドの種類 changeメソッド テーブルの新規作成や修正をするためのメソッドです。up/downと異なりロールバックを自動で反転して行ってくれるのでロールバック処理を記述する必要がありません。(add_columnでカラムを追加し…
-
N+1問題とは? Railsでループ処理の都度SQLを発行してしまいパフォーマンスが低下する問題のことです。 具体的にはどんな動作か? 1:多のリレーションのテーブル同士で1に紐づいている多の情報を取得しようとした際に、最初に一括で1…
-
【RSpec】高速化の手法
03.21
Rspecのテストを高速化する手法としてはいくつかあります。 Railsの起動を高速化する。 Railsを取り外す。 テストを並列化させる。 タグを使う。 モックやスタブを使用する。 Railsの起動…
-
RSpecを並列に実行したい場合は「ParallelTests」というGemを使います。 ParallelTestsの仕組み テストスイートが複数のコアに分かれる。 …
-
【RSpec】「タグ」について
03.21
タグとは? いくつかあるテストのうち特定のテストコードのみタグ付けして実行することができる機能です。 タグの書き方 タグ名にはfocusというタグ名がよく使われます。 [crayon-63e15253865cd505703661/]…
-
【テスト】「モック」と「スタブ」について
03.21
モック(テストダブル)とは? 本物のオブジェクトのふりをするオブジェクトです。テストダブルと呼ばれる場合もあります。Rspecで言えばFactoryBotもモックの一つです。モックはデータベースにはアクセスをしないため処理速度は早いです。…
-
Shoulda Matchersとは? Shoulda MatchersはActiveModelやActiveRecord等で使える豊富なマッチャのコレクションになります。(すでに開発は停止されております。) また、モデルだけでなく…
-
aggregate_failuresとは? 一つのexpectが失敗した際に通常であれば次のitに移動してしまいますが、aggregate_failuresを使うことによって仮に失敗したとしても次のexpectを実行してくれるようになりま…