カテゴリー:Rspec
-
前提 deviseをインストールしておきましょう。 userモデル(deviseの対象モデル)を作成しておくこと。 事前準備 rspec関連Gemのインストール Gemfile [crayon-63e15f7f3…
-
【RSpec】高速化の手法
03.21
Rspecのテストを高速化する手法としてはいくつかあります。 Railsの起動を高速化する。 Railsを取り外す。 テストを並列化させる。 タグを使う。 モックやスタブを使用する。 Railsの起動…
-
RSpecを並列に実行したい場合は「ParallelTests」というGemを使います。 ParallelTestsの仕組み テストスイートが複数のコアに分かれる。 …
-
【RSpec】「タグ」について
03.21
タグとは? いくつかあるテストのうち特定のテストコードのみタグ付けして実行することができる機能です。 タグの書き方 タグ名にはfocusというタグ名がよく使われます。 [crayon-63e15f7f342e3045741414/]…
-
【テスト】「モック」と「スタブ」について
03.21
モック(テストダブル)とは? 本物のオブジェクトのふりをするオブジェクトです。テストダブルと呼ばれる場合もあります。Rspecで言えばFactoryBotもモックの一つです。モックはデータベースにはアクセスをしないため処理速度は早いです。…
-
Shoulda Matchersとは? Shoulda MatchersはActiveModelやActiveRecord等で使える豊富なマッチャのコレクションになります。(すでに開発は停止されております。) また、モデルだけでなく…
-
aggregate_failuresとは? 一つのexpectが失敗した際に通常であれば次のitに移動してしまいますが、aggregate_failuresを使うことによって仮に失敗したとしても次のexpectを実行してくれるようになりま…
-
【Rspec】「カスタムマッチャ」について
03.20
カスタムマッチャとは? Rspecのマッチャは自作することが可能です。 作成方法 下記のディレクトリを作成します。 [crayon-63e15f7f35122014389757/] 内容 [crayon-63e15f7f3512…
-
【Rspec】「サポートモジュール」での共通化
03.20
コードの重複をなくすシンプルな方法の一つとしてサポートモジュールがあります。特にフィーチャースペックやシステムスペックでよく使える手法(ログイン処理の共通化等)です。 前提 事前に下記ファイルが編集されている必要があります。 [cra…
-
【Rspec】「リクエストスペック」について
03.20
リクエストスペックが必要な背景 最近のRailsアプリでは外部APIを持つことが増えてきています。堅牢なAPIにするためにテストもしっかりすることが求められます。 リクエストスペックを使うには? フィーチャースペックのようにブラウザを…