パRails🚂
rails s
できない可能性が高いです。
@sadanora
@sharoa
7-5 「コントローラに対する機能テスト」から
7-5-2「起動確認APIのテスト」まで。
PR:https://github.com/PerfectRubyonRails-Rindoku/Perfect_Ruby_on_Rails_Ch6/pull/21
7-5-3 「ログインヘルパーを機能テストでも利用可能にする」から。🚂
@sharoa
@moegi29
@ayu-0505
@shodan
MIME
タイプはHTTPヘッダのContent-Type
で伝達されるもの。レスポンスにおいてはクライアントに返されたコンテンツの実際の種類を伝える。ActionDispatch::IntegrationTest
を継承している。
@motohiro-mm
@sadanora
@hiromisugie
マイム
。Multipurpose Internet Mail Extensions
の略。application/json
のようにタイプ/サブタイプ
の2つで構成される@sharoa
@hiromisugie
7-5-3 「ログインヘルパーを機能テストでも利用可能にする」から
7-5-4 「他の人が作ったイベントを削除できないことを確認するテスト」まで。
PR:https://github.com/PerfectRubyonRails-Rindoku/Perfect_Ruby_on_Rails_Ch6/pull/22
7-6 「モデルに対するテスト」から。🚂
@sharoa
case
を使う。@moegi29
case
を使って切り分ける必要がある。when respond_to?(:visit)
はシステムテスト、when respond_to?(:get)
は機能テストの部分。どれでもなかったらraiseメソッドを使ってエラーを発生させる。shodanさんがしてくださった解説でなんとか理解できました、類推力すばらしい@ayu-0505
case ~ when
を用いて、テスト種類ごとに異なるメソッドを使用したログインを行う。
respond_to?(:method)
でレシーバが対象のメソッドを持っているかの真偽値を返す。assert_difference
(ブロック内処理を行った際の違いを検証)メソッドのブロック内で、さらにassert_raises
(エラーが期待通りのものか検証)メソッドを使用し、ブロックを使っている。@shodan
sign_in_as
メソッドだと、機能テストでログインができない(機能テストで流用できないので、修正しよう)visit
メソッドを持っているget
メソッドを持っているrespond_to?
メソッドでわかるcase
〜when
分岐させよう@hiromisugie
@motohiro-mm
respond_to?
で判断してcase~when
で場合分けしているassert_raises
はエラーがあってるか確認している@sharoa
@ayu-0505
7-6 「モデルに対するテスト」から
7-6-3 「モックを使ってテストする」まで。
PR: https://github.com/PerfectRubyonRails-Rindoku/Perfect_Ruby_on_Rails_Ch6/pull/23
7-6-4 「バリデーションをテストする」から。🚂
@sharoa
@hiromisugie
require minitest/mock
することで使えるようになるuser.verify
しているということはわかったが、メソッドが呼び出されることの意味がちょっとわかってない…。MiniTest::Mock
は誤植で、Minitest::Mock
が正しい!@shodan
require minitest/mock
を読み込むことで、モデルオブジェクト.stub(:カラム名, 差し替えたい値) do テストしたい処理 end
という形でスタブを使うことができるverify
メソッドを使うことで確認することができる@moegi29
@motohiro-mm
@ayu-0505
user.verify
でモックであるuserが自分で検証することができる)