DAY10 setupメソッド

TOKHEE·2024년 3월 27일
0

setupメソッドとは?

  • Ruby on Railsのテストフレームワークにおいて、setupメソッドは各テスト実行前に必要なデータや状態を準備するために使用されるメソッドです。
  • このメソッドを通じてテスト環境を一貫して予測可能な状態に初期化可能 => 各テストが独立して実行可能になります。
  • 該当テストクラス内の全てのテストメソッドが実行される前に自動的に呼び出されます。

主な機能と利点

  • テスト環境の一貫性を保証
    setupメソッドは各テストが開始される前に同じ状態から開始できるようにしてくれます。
  • 重複コードの減少: 必要なオブジェクトの作成、データベースの設定、インスタンス変数の初期化などの繰り返し作業をsetupメソッド内で処理することにより、テストコード全体にわたる重複を減らします。

第3章 ほぼ静的なページの作成

StaticPagesControllerTest

require 'test_helper'

class StaticPagesControllerTest < ActionDispatch::IntegrationTest

  def setup
    @base_title = "Ruby on Railsチュートリアルサンプルアプリ"
  end

  test "should get home" do
    get static_pages_home_url
    assert_response :success
    assert_select "title", "Home | #{@base_title}"
  end

  test "should get help" do
    get static_pages_help_url
    assert_response :success
    assert_select "title", "Help | #{@base_title}"
  end

  test "should get about" do
    get static_pages_about_url
    assert_response :success
    assert_select "title", "About | #{@base_title}"
  end

end

主な変更点

  • setupメソッド内に@base_titleインスタンス変数を宣言し、全てのテストで使用する基本タイトルを初期化しました。
  • 各テストメソッド内でassert_select "title", "Page Title | #{@base_title}"形式を使用し、各ページのタイトルが期待する値と一致するかを検証します。
    => この際、"Page Title"部分は各ページに合わせて"Home", "Help", "About"に変更されます。
  • 各テストでタイトルの基本部分を繰り返し書く必要がなくなりました。

0개의 댓글

관련 채용 정보