WeBlog

Webに関する情報を中心に発信してるブログ

テスト

ActionMailerのテストについて

ActionMailerについて難しく感じたので備忘録を残します。 ActionMailerのテストで見るべきポイント メールには「Header」と「Body」部分があります。 まずは、この認識が大事です。 そしてActionMailerのテストでは下記を確認します。 メールが送信されてい…

画像アップロードのテスト

今回画像がアップロードされているかどうかのテストについて、初見の内容があったので書きます。 テストコード describe '記事にアイキャッチを追加' do it '記事の更新に成功し、プレビューでアイキャッチが確認できる' do click_link '編集' attach_file '…

callback と transient と traitを組み合わせて、アソシエーション先のデータを作成する

今回はテストコードでよくわからなかった部分を備忘録として残します。 テストコード1つ目(著者で記事を検索) 1つ目は「記事を著者で検索できるかどうか」のテストになります。 RSpec.describe 'AdminArticles', type: :system do describe '検索機能' d…

Rakeタスクのテストが実行される順番を確認してみた

今回は、「Rakeタスクのテストコード」や「実行される順番」がいまいちよくわからなかったので、その備忘録を残します。 今回のテストファイル # spec/rake_helper.rb require 'rails_helper' require 'rake' RSpec.configure do |config| config.before(:su…

FactoryBotでtraitを使って重複をなくす方法

今回はFactoryBotでtraitを使って重複をなくす方法について書いていきます。 traitを使わない場合 FactoryBot.define do factory :todo_task do title { 'Task' } status { :todo } # enumを使っている association :project end factory :doing_task do tit…

FactryBotに associationを定義する方法とメリット

今回はFactryBotに associationを定義する方法やそのメリットについて書きます。 今回のコード # app/models/project.rb class Project < ApplicationRecord end # app/models/task.rb class Task < ApplicationRecord belongs_to :project validates :title…

【Rspec】xit、xcontext、xdescribeについて

xit、xcontext、xdescribeとは? SystemTestの中でテストを飛ばしてあげたい時があります。 そんな時に使えるのがxです。 xit、xcontext、xdescribeを使うと、テストを無視することができます。 使い方 describe 'Task一覧' do context '正常系' do xit '一…

RSpecでApplicationHelperのモジュールメソッドを使う方法

テストの中でapp/helpers/application_helper.rbで定義したメソッドを使いたい時があります。 そんな時に対応を書きます。 複数のテストファイルでモジュールメソッドを使いたい # spec/rails_helper.rb RSpec.configure do |config| config.include Applica…

SystemTestでtarget:'_blank'に対応する方法

target="_blank"とは? <a target="_blank" rel="noopener" href="/projects/1/tasks">View Todos</a> HTMLのリンクなどで上記のようにtarget="_blank"属性が付与されたリンクがあります。 target="_blank"属性が付与されたリンクはクリックすると別タブで開きます。 しかし、SystemTestの中でtarget="_blank"属性が付与され…

RSpecの基本的な構文

RSpecの基本的な構文 letはどんな時に使うのか? let!はどんなときに使うのか? beforeはどんな時に使うのか? RSpecの基本的な構文 require 'rails_helper' RSpec.describe 'UserSessions', type: :system do # FactoryBotを使っています let(:user) { crea…

SystemSpecの環境構築

gemのインストール Rspecの設定をする Specファイルの自動生成設定 Rspecの実行結果を見やすくする FactoryBotの設定 capybaraの設定 spec/support 配下のファイルを読み込むように設定する 実行するテストケースを限定する ログイン処理をモジュールを作成…

モデルスペックを作成する

Rspecのモデルスペックを作成 # models/task.rb class Task < ApplicationRecord belongs_to :user validates :title, presence: true, uniqueness: true validates :status, presence: true enum status: { todo: 0, doing: 1, done: 2 } end 今回は既にモ…

Rspecの環境構築

Rspecとは? Rspecはテスト用のフレームワークです。 RailsにはMiniTestと言うテスト用のフレームワークがデフォルトで付いてきます。 MiniTestを使ってもいいですが、Rspecというテスト用のフレームワークがRailsでよく使われるので、こいつを使っていきま…

Rspecを実行したらエラーになった内容

はじめに こちらはプログラミング学習のメモになります。 今回は「Rpec」を実行した際にエラーになった内容や原因を残しておくために書いています。 はじめに LoadError: cannot load such file -- /Users/ ・・・が表示された 原因は? 対処方は? WARN Sel…