(備忘録)rspec関連
TODO,FIXMEなどのアノテーションコメントについて
# TODO: 変数aがNoneの時、呼び出すときにエラーを吐くことの対応
- アノテーションコメントの出力方法
Ruby on Railsの場合、アノテーションコメントが書かれた箇所を下記コマンドで一覧で出力することができる
$ rails notes
以下参考サイト qiita.com
中々理解出来なかったwithin_window
- Capybaraのwithinメソッドは、検索/操作の影響範囲を制限することができる。 within_windowはウィンドウ画面の指定。
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について
APIテストコードについて(JSONのレスポンス)
digメソッド
digメソッドはネストしたハッシュから安全に値を取り出すことができるメソッド
参考サイト ハッシュの便利メソッドあれこれ - Qiita
その他参考サイト
RSpecでFactoryBotから複数のインスタンスをまとめて作成する【create_listを使用】 - Qiita