RailsアプリケーションにRSpecを導入する方法

✏️️ 2019/10/23 👍️2019/10/23 🔗

RailsアプリケーションにRspecを導入する方法

Rails アプリケーションにRspecを導入します。

rspec-rails

必要なgemを追加

group :development, :test do
  gem 'factory_bot_rails'
  gem 'rspec-rails'
end
bundle install

Rspecのインスール

bin/rails g rspec:install

FactoryBotを設定(テストデータ)

# spec/factories/posts.rb
FactoryBot.define do
  factory :post do
    title { "MyString" }
    content { "MyContent" }
    slug { "my-string" }
  end
end

以下を設定することで、テストファイルのFactoryBotを省略できます。

# spec/rails_helper.rb
config.include FactoryBot::Syntax::Methods
let!(:post) { FactoryBot.create(:post) }

let!(:post) {create(:post) }

テスト環境のConsoleは-e testオプションで入ることができます。

bin/rails c -e test --sandbox

RSpecを実行

サンプルテストを作成

# spec/models/post.rb
require 'rails_helper'
RSpec.describe Post, type: :model do
  let!(:post) { create(:post) }

  it '記事のタイトルがそのまま返ること' do
    expect(post.title).to eq 'MyString'
  end
end 

RSpecを実行

bundle exec rspec --format documentation --require spec_helper --color

実行結果

Post
  記事のタイトルがそのまま返ること

Finished in 0.27809 seconds (files took 2.97 seconds to load)
1 example, 0 failures

参考: .rspecを作成するとbundle exec rspec時のオプションを省略できます。

# .rspec
--require spec_helper
--color
--format documentation

以上で、RailsアプリケーションにRSecを導入することができました。

akito
日本のスタートアップで主にRuby on Railsを使ってプロダクト開発をしています。