RailsチュートリアルのテストをRspecで書いてみた[第3章]

はじめに

今回はRspecの学習の一環として、RailsチュートリアルのテストをRspecで書いていきます。
至らない点があるかもしれませんが、その際はコメントにてご指摘をお願いします。

各種バージョン

Ruby 2.7.0
Rails 6.0.3.3
Rspec 3.9
Capybara 3.33.0
Factory_bot_rails 6.1.0

第3章

リスト3.16: Aboutページのテスト

spec/requests/static_pages_request_spec.rb

  describe "GET /about" do
    it "returns http success" do
      get "/staticpages/about"
      expect(response).to have_http_status(:success)
    end
  end

リスト3.25: StaticPagesコントローラのタイトルをテストする

spec/requests/static_pages_request_spec.rb

require 'rails_helper'

RSpec.describe "Staticpages", type: :request do
  describe "GET /home" do
    it "returns http success" do
      get "/staticpages/home"
      expect(response).to have_http_status(:success)
#以下の一文を追加
      expect(response.body).to include "Home | Ruby on Rails Tutorial Sample App"
    end
  end

  describe "GET /help" do
    it "returns http success" do
      get "/staticpages/help"
      expect(response).to have_http_status(:success)
#以下の一文を追加
      expect(response.body).to include "Help | Ruby on Rails Tutorial Sample App"
    end
  end

  describe "GET /about" do
    it "returns http success" do
      get "/staticpages/about"
      expect(response).to have_http_status(:success)
#以下の一文を追加
      expect(response.body).to include "About | Ruby on Rails Tutorial Sample App"
    end
  end
end

リスト3.43:rootルーティングに対するテスト

  describe "GET /" do
    it "returns http success" do
      get "/"
      expect(response).to have_http_status(:success)
      expect(response.body).to include "Home | Ruby on Rails Tutorial Sample App"
    end
  end