プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • Ruby on Rails
  • 【Rspec】System Spec(システムスペック)の基本
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【Rspec】System Spec(システムスペック)の基本

12.01

  • miyabisan2
  • コメントを書く

この記事は1分で読めます

System SpecはRspec3.7からの機能で比較的歴史が浅い機能になります。E2Eテストができるspecになります。

元々は、Feature SpecというE2Eテスト用のSpecが用意されていましたがその代替です。

Feature Specとの違い

RailsでのE2Eテストをより便利にするように以下がデフォルト実装されています。

  • デフォルトでselnium-webdriver + Chrome上でテストが実行される。
  • データベースのトランザクション管理をする必要がない。
  • テスト失敗時に自動でスクリーンショットを保存してくれる。

準備

System SpecをするためにはCapybaraという外部のGemをRailsに組み込む必要があります。capybara自体はrails newコマンドを実行した際に既にインストールされているはずなのでRspecでcapybaraを利用するための準備をしていきます。

spec/spec_helper.rb

spec_helper.rb(Rails特有のRspecの設定をしていくファイル)に対して下記の記述を追加しましょう。

1
2
3
4
5
6
7
8
9
10
require 'rspec/rails'
# Add additional requires below this line. Rails is not loaded until this point!
require 'capybara/rspec' ★追加
 
~ 中略 ~
 
RSpec.configure do |config|
  config.before(:each, type: :system) do  ★追加
    driven_by :selenium_chrome_headless   ★追加
  end                                      ★追加

require 'capybara/rspec'

RspecでCapybaraを読み込みます。注意点としては「ActiveRecord::Migration.maintain_test_schema!」等の他の記述の後には記述しないようにしましょう。(動かなくなりました。)

config.before(:each, type: :system) do 〜 end

System Specを使用するための設定です。その際にドライバというSystem Specにおいてブラウザに相当する機能を持ったプログラムの指定をします。ここでは「selenium_chrome_headless」というドライバを指定しています。

スポンサーリンク
  • 2019 12.01
  • miyabisan2
  • コメントを書く
  • Rspec, Ruby on Rails
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2020 03.28

    【Ruby on Rails】「Flashメッセージ」について

  2. 2020 10.13

    【Ruby on Rails】「pundit」について

  3. 2020 03.21

    【RSpec】「Shoulda Matchers」について

  4. 2022 09.04

    【Rails】「ロードパス」、「Zeitwerk」について

  5. 2019 11.17

    【Ruby】日付や時刻を扱うクラス

  6. 2020 03.21

    【RSpec】高速化の手法(ParallelTestsなど)

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【Rspec】RspecのインストールやRailsで使…

【Rspec】基本的な書き方、タグなど

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • AngularJS
  • API
  • AWS
  • C++
  • CSS
  • cursor
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Figma
  • Git
  • GitLab
  • GraphQL
  • gRPC
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 生成AI
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー