ページ内ナビ
概要
RSpecは、Ruby向けのBDDテスト基盤です。monorepoには実行構造を担うrspec-core、期待結果を表現するrspec-expectations、stubやmockを扱うrspec-mocks、共通処理のrspec-supportが含まれます。通常はrspec gemを導入するとcore・expectations・mocksをまとめて利用できます。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
describe・itとexpectationで振る舞いを読みやすく記述する
example groupをdescribe、個別の振る舞いをitで表現し、expect(...).to ...で期待値を記述します。spec自体が対象codeの振る舞いを説明する文書として読める構成です。
出典:[2]
向いている用途
Ruby libraryやapplicationのunit・behavior testを共通化したい場合に向く
Ruby codeのexampleを読みやすいDSLで管理し、CLIから対象specやformatterを切り替えて継続的に実行したいprojectに向きます。Rails固有のintegrationには別projectのrspec-railsを組み合わせます。
出典:[2]
導入前の確認
monorepo mainの4.0 betaと3.13 stable系を混同しない
確認時点のmain branchは4.0.0.beta1ですが、各component changelogは3.13系stableからmainへの差分を示しています。production projectでstableを使う場合は3.13系へversion範囲を固定し、4.0 betaのbreaking changeを前提にしないようにします。
Rails integrationはRSpec本体とは別に選ぶ
このmonorepoはRSpecのcore gemsをまとめるもので、Rails向けintegrationはrspec-railsとして別repo・gemです。Rails appではframework integrationのversion互換性も別途確認します。
出典:[2]
参考にした公式資料
- [1]rspec/rspec repository(2026-09-30)
- [2]RSpec monorepo README(2026-09-30)
- [3]RSpec Core gemspec(2026-09-30)
- [4]RSpec Core changelog(2026-09-30)
- [5]RSpec Mocks changelog(2026-09-30)
- [6]RSpec MIT license(2026-09-30)
編集部からの補足
RSpec本体はrunner・matcher・mockを分離しつつ、通常のrspec gemではまとめて導入できます。現在のmonorepo mainは4.0 betaなので、既存projectではstable 3.13系とbetaの差を意識してversionを固定するのが安全です。
3ステップで試す
- 1
RSpec 3.13系を追加
main branchは4.0 beta系のため、stable利用では3.13系へversion範囲を固定します。
gem install rspec -v '~> 3.13' - 2
最小specを作成
spec/calculator_spec.rbなどへexampleとexpectationを記述します。
RSpec.describe Calculator do it "adds numbers" do expect(1 + 2).to eq(3) end end - 3
specを実行
RSpec runnerで対象specを実行し、exampleとfailureの出力を確認します。
rspec spec/calculator_spec.rb
成長
成長の推移 · 直近30日
117 Stars
推移データを蓄積中です。
Built with
カテゴリとタグ
GitHubデータ
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- NUnit2,627 Stars
共通タグ 1件 · 共通カテゴリ 2件
.NETのtest fixture・parameterized test・constraint assertionを属性中心で記述するunit/integration test framework
C# - fake-indexeddb695 Stars
共通タグ 1件 · 共通カテゴリ 2件
Node.jsのテストでIndexedDB互換APIをメモリ上に再現する
JavaScript - Jekyll51,700 Stars
共通タグ 1件 · 共通カテゴリ 1件 · 同じ言語
MarkdownとLiquidからブログ対応の静的サイトを生成
Ruby - Homebrew49,828 Stars
共通タグ 1件 · 共通カテゴリ 1件 · 同じ言語
macOS/Linuxのソフトウェア導入を
Rubybrewコマンドへまとめるパッケージ管理ツール - Vagrant27,211 Stars
共通タグ 1件 · 共通カテゴリ 1件 · 同じ言語
Vagrantfileでprovider差を隠し、portableな開発環境を配布するsource-available tool
Ruby - Aider49,251 Stars
共通タグ 1件 · 共通カテゴリ 1件
リポジトリー全体の文脈を使ってターミナルからコードを編集する
Python
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。