RailsチュートリアルのテストをRspecで書いてみた[第4章]
はじめに
今回は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
第4章
リスト4.4: Homeページ用のタイトル確認用にテストを更新する
spec/requests/static_pages_request_pec.rb RSpec.describe "Staticpages", type: :request do let(:base_title) { 'Ruby on Rails Tutorial Sample App' } describe "GET /" do it "returns http success" do get "/" aggregate_failures do expect(response).to have_http_status(:success) expect(response.body).to include base_title expect(response.body).to_not include "| #{base_title}" end end end
第3章のテストを利用してみましたが、強引な感じが否めません...
ですので、system-specで書いてみました。
spec/system/static_pages_spec.rb RSpec.describe "StaticPages", type: :system do scenario "「/」 にアクセスした場合,タイトルは「Ruby on Rails Tutorial Sample App」です" do visit root_path expect(page.title).to eq "Ruby on Rails Tutorial Sample App" end end