備忘録 Rspecヒント

📝

  • フォークしてきたgithubをよく見る

  • letの挙動と性質を振り返ること

  • 処理の流れをよく知ること

  • expectが「期待すること」

  • 期待する処理をするためにブラウザで実際にやってみる

  • letの定義をvisitの引数で使う

    let(:task) { create(:task) }
    
    …省略
    
    it '…' do
    	visit 〇〇_path(task)
    …省略
    end
    

使えるヒント

FactoryBot Traits - Qiita

FactoryBotでtraitを使おう - Qiita

fitを使う


ヒントの

it を fit にするとspec実行時にそのテストケースのみをfocus実行できます

これは前回focasを記述したspec_helper.rb内

config.filter_run_when_matching :focus

この上にある

コメントアウトの部分で**’it を fit にする’**説明が書かれている

<原文>
# with RSpec, but feel free to customize to your heart's content.
  # This allows you to limit a spec run to individual examples or groups
  # you care about by tagging them with `:focus` metadata. When nothing
  # is tagged with `:focus`, all examples get run. RSpec also provides
  # aliases for `it`, `describe`, and `context` that include `:focus`
  # metadata: `fit`, `fdescribe` and `fcontext`, respectively.

							↓     ↓
 <翻訳>
# RSpecでは、心ゆくまで自由にカスタマイズしてください。
  # これにより、`:focus`メタデータでタグ付けすることで、specの実行を個々の例やグループに限定することができます。
  メタデータでタグ付けすることで、気になる個々の例やグループに # 限定することができます。何もないとき
  # 何もないときは、すべての例が実行されます。また、RSpecでは
  # it`, `describe`, `context` には `:focus` を含むエイリアスが用意されています。
  # メタデータを提供しています。それぞれ、`fit`, `fdescribe`, `fcontext` です。

f:id:michimo_10:20210607143455p:plain




spec/support/driver_setting.rb にspec実行時のブラウザON/OFFの切替設定があります


✋(΄>◞౪◟<`)タハー

これ前回見たやつだ!!!

"ブラウザのON/OFF"って言ったらアレよ

アレっしょ?

f:id:michimo_10:20210607143548p:plain


f:id:michimo_10:20210607143602p:plain

  •  

 

テスト失敗時には tmp/screenshots フォルダ以下に画面キャプチャが保存され、確認することが出来ます(このフォルダはgit ignoreされています)


もう、ヒントもね、問題文もね、よく読まないとダメなんだよね

こういうふうにね、今までね、課題で見てたよく見るスクショのやつをね、rspecやるときはね、自分でね、設定しなきゃいけないんだよね

f:id:michimo_10:20210607143632p:plain



信じるか信じないかはあなた次第です

👁️


f:id:michimo_10:20210607143707p:plain



f:id:michimo_10:20210607143720p:plain



それでいて、そのあとどういう処理をするんだっけ?

その処理で何か必要なものとかあったりするっけ?

itってなんだっけ?visitってなんだっけ?click_linkってなんだっけ?expectってなんだっけ?