DEV Community

Cover image for How to Setup RSpec on a Rails Project
Ajithkumar P S
Ajithkumar P S

Posted on • Edited on

6 1

How to Setup RSpec on a Rails Project

At the time of writing this article using ruby 3.2.0 & Rails 7.1.2

Let's get started...

1. Create a new project



rails new rspec-test-app -d postgresql
cd rspec-test-app
rails db:create
rails s


Enter fullscreen mode Exit fullscreen mode

2. Install gems



group :development, :test do
  gem 'rspec-rails', '~> 6.1.0'
  gem 'factory_bot_rails'
  gem 'faker'
end


Enter fullscreen mode Exit fullscreen mode

3. Run below commands



bundle install
rails g rspec:install


Enter fullscreen mode Exit fullscreen mode

4. Configure factory bot

Create spec/support/factory_bot.rb file then copy & paste below code



# spec/support/factory_bot.rb
require 'rails_helper'

RSpec.configure do |config|
    config.include FactoryBot::Syntax::Methods
end



Enter fullscreen mode Exit fullscreen mode

Almost done. Now generate the user model



rails generate model User email:string password:string
rails db:migrate


Enter fullscreen mode Exit fullscreen mode

It will generate following files for us:



invoke  active_record
create  db/migrate/20231130055533_create_users.rb
create  app/models/user.rb
invoke  rspec
create  spec/models/user_spec.rb
invoke  factory_bot
create  spec/factories/users.rb


Enter fullscreen mode Exit fullscreen mode

Now run the below command and the watch the output
rspec



*

Pending: (Failures listed here are expected and do not affect your suite's status)

  1) User add some examples to (or delete) /home/spritle/p/rspec-test-app/spec/models/user_spec.rb
     # Not yet implemented
     # ./spec/models/user_spec.rb:4


Finished in 0.00287 seconds (files took 0.64832 seconds to load)
1 example, 0 failures, 1 pending


Enter fullscreen mode Exit fullscreen mode

To know more:

rspec-rails
factory_bot_rails
faker

It's done

I hope this helps you to start your journey on rspec 🚀. Thanks for reading!

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more