(備忘録)rspec関連

TODO,FIXMEなどのアノテーションコメントについて

# TODO: 変数aがNoneの時、呼び出すときにエラーを吐くことの対応

Ruby on Railsの場合、アノテーションコメントが書かれた箇所を下記コマンドで一覧で出力することができる

$ rails notes

以下参考サイト qiita.com

中々理解出来なかったwithin_window

  • Capybaraのwithinメソッドは、検索/操作の影響範囲を制限することができる。 within_windowはウィンドウ画面の指定。

以下参考サイト qiita.com qiita.com

seedデータをテスト環境に挿入する

以下参考サイト github.com qiita.com

rakeタスクのテスト

qiita.com subjectについてはeveryday rails のp154〜155に記載あり。

単一テーブル継承について

下記ソースコード内のtypeについて分からなかった為調べた

FactoryBot.define do
   factory :category do
     type { 'Category' }
     sequence(:name) { |n| "応用課題#{n}" }
     sequence(:slug) { |n| "ouyou-kadai#{n}" }
   end
 end

以下参考サイト obel.hatenablog.jp qiita.com qiita.com

after_buildとtransientを使って、letで作成するテストデータの記載を統合

例 spec/factories/articles.rb
trait :with_tag do
  transient do
    sequence(:tag_name) { |n| "test_tag_name_#{n}" }
    sequence(:tag_slug) { |n| "test_tag_slug_#{n}" }
  end
 
  after(:build) do |article, evaluator| ※1
    article.tags << build(:tag, name: evaluator.tag_name, slug: evaluator.tag_slug)※2
  end
end

※1 ブロックの第2引数にevaluatorを渡すことでtransientブロック内の変数にアクセスできる ※2 << は配列演算子(A<<B の場合、Aに対してBを連結する破壊的メソッド。破壊的・・元のオブジェクトを直接書き換える)

以下参考サイト after_buildについて

qiita.com

qiita.com

ruby 配列演算子について

techacademy.jp

APIテストコードについて(JSONのレスポンス)

【Rails】APIテストの書き方 - Qiita

digメソッド

digメソッドはネストしたハッシュから安全に値を取り出すことができるメソッド

参考サイト ハッシュの便利メソッドあれこれ - Qiita

その他参考サイト

qiita.com

qiita.com

qiita.com

study-diary.hatenadiary.jp

study-diary.hatenadiary.jp

qiita.com

qiita.com

qiita.com

docs.ruby-lang.org

github.com

RSpecでFactoryBotから複数のインスタンスをまとめて作成する【create_listを使用】 - Qiita