RSpec

railsアプリにCircleCIを導入する

はじめに railsアプリにCircleCIを導入してCI部分のRspecとRubocopを自動化してみました。 設定方法 まずはアプリのルートディレクトリに.circleciというディレクトリを作り、その配下にconfig.ymlというファイルを作ります。 そのファイルにcircleciの設定…

Rspecで画像を添付する方法

はじめに Rspecで画像を添付する方法と、その画像が添付されたかどうかを確認する方法について。 画像を添付する Rspecで画像を添付するには、attach_fileというメソッドを使います。 このメソッドは、第一引数にinputタグのname属性を指定し、第二引数に画…

rakeタスクを設定する【rails】

はじめに rakeタスクはアプリケーションを起動せずに、ターミナルなどから行いたい処理を実行できます。 rakeタスクの設定方法 まず、rakeタスクの処理を設定するためのファイルを作成します。 $ rails g task <タスクの名前> $ rails g task update_article…

【エラー】SQLite3::SQLException: table "〇〇" already existsの解決法

はじめに モデルを作成する際に、SQLite3::SQLException: table "〇〇" already existsというエラーに遭遇したのでその対処法。 SQLite3::SQLException: table "〇〇" already existsの解決法 commentsモデルを作成するためにrails db:migrateを実行した時に…

RSpecでテスト実行時のブラウザの表示・非表示の設定

はじめに RSpecでテストを実行する際に、ブラウザを表示するかしないかの設定について 設定方法 まず、下記のGemをインストールします。 group :test do gem 'capybara' gem 'webdrivers' end 続いて、specディレクトリ以下に'support'ディレクトリと、'driv…

RSpecで特定のテストだけを実行したいときの設定

はじめに RSpecで特定のテストだけを実行したいときについて $ rspec spec/system/task_spec.rb:10 上記のようにファイル名とテストしたい行を指定すれば、特定のテストだけを実行できますが、 次の設定をすることでもっと簡単に呼び出せます。 設定方法 RSp…

【Rails】strftimeメソッドで日付の書式を変更する

はじめに strftimeメソッドで日付の書式を変更する方法について strftimeメソッドで日付の書式を変更する strftimeメソッドは、下記のようにTimeクラスやDateクラスのインスタンスに対して使います。 now_time = Time.current now_time.strftime('日付の書式…

RSpecでdata-confirmのOKかキャンセルを選択する方法

はじめに RSpecのテストコードで、data-confirmのOKかキャンセルを選択する方法について テストするビューの一部 まず、以下のようなtask一覧ページのビューがあるとします。 <tbody class='task_list'> <% @tasks.each do |task| %> <tr> <td><%= task.title %></td> <td><%= task.status %></td> <td><%= short</td></tr></tbody>…

RSpecのテストで別タブをテストする方法

はじめに RSpecのsystemテストで、リンクをクリックした時に別タブを開くときがあったので調べてみました。 RSpecのテストで別タブに移動する方法 rspecのテストの途中で別タブ内のテストもしたい場合には、 「click_link」や「click_button」のあとに下記の…

【RSpec】"let"と"let!"とbeforeの違いと実行順序

はじめに rspecのテストコードを書くために"let"と"let!"の違いを調べていたところ、 今度は"let!"と"before"の違いや実行順序に関して気になったのでまとめてみました。 "let"とは rspecには"let"というメソッドがあります。 これは呼び出された時にはじめ…

【FactoryBot】create_listで複数のインスタンスの配列を作成する【RSpec】

はじめに 先日、RSpecでテストを書いていた際に、テストデータをまとめて作成したいなーと思って調べたので、ご参考になれば。 create_listメソッドとは create_listメソッドとは、ファクトリに定義しているテストデータを、配列としてまとめて取得すること…

RSpecでバリデーションのテストを書こう!【rails】

はじめに 先日、はじめてRSpecでバリデーションのテストを書いたのでアウトプットとして書きます。 ご参考になれば幸いです。 userモデルとtaskモデル userモデルとtaskモデルはこんな感じです。 ※今回はtaskモデルのバリデーションテストのみ書きます。 cla…

RSpecとFactoryBotのインストール【rails】

はじめに railsアプリにrspecとFactoryBotをはじめてインストールしたので参考になれば 導入の手順 1.Gemfileに記述 2.bundle install 3.RSpecのインストール 4.その他設定 1.Gemfileに記述 group :development, :test do gem 'rspec-rails' gem 'factory_bo…