Skip to content

Instantly share code, notes, and snippets.

@jendiamond
Created March 27, 2016 07:04
Show Gist options
  • Select an option

  • Save jendiamond/9e4bb1036111be80b830 to your computer and use it in GitHub Desktop.

Select an option

Save jendiamond/9e4bb1036111be80b830 to your computer and use it in GitHub Desktop.

Add RSpec

group :test do
  gem 'rspec-rails', '~> 3.4', '>= 3.4.2'
end

$ rails generate rspec:install


Add FactoryGirl

Gemfile

group :development do
  gem 'web-console', '~> 2.0'
  gem 'spring'
  gem 'sqlite3'
+  gem 'factory_girl_rails', '~> 4.5'
end

spec/spec_helper.rb

+ require 'factory_girl_rails'

RSpec.configure do |config|

  config.expect_with :rspec do |expectations|
    expectations.include_chain_clauses_in_custom_matcher_descriptions = true
  end

  config.mock_with :rspec do |mocks|
    mocks.verify_partial_doubles = true
  end

end

spec/rails_helper.rb

ENV['RAILS_ENV'] ||= 'test'
require File.expand_path('../../config/environment', __FILE__)

abort("The Rails environment is running in production mode!") if Rails.env.production?
require 'spec_helper'
require 'rspec/rails'
+ require 'factory_girl_rails'

ActiveRecord::Migration.maintain_test_schema!

RSpec.configure do |config|
  # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
  config.fixture_path = "#{::Rails.root}/spec/fixtures"
  config.use_transactional_fixtures = true
  config.infer_spec_type_from_file_location!
  config.filter_rails_from_backtrace!
end

Add FFaker

Gemfile

group :development do
  gem 'web-console', '~> 2.0'
  gem 'spring'
  gem 'sqlite3'
  gem 'factory_girl_rails', '~> 4.5'
+  gem 'ffaker', '~> 2.2'
end

spec/rails_helper.rb

ENV['RAILS_ENV'] ||= 'test'
require File.expand_path('../../config/environment', __FILE__)

abort("The Rails environment is running in production mode!") if Rails.env.production?
require 'spec_helper'
require 'rspec/rails'
require 'factory_girl_rails'
+ require 'ffaker'

ActiveRecord::Migration.maintain_test_schema!

RSpec.configure do |config|
  # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
  config.fixture_path = "#{::Rails.root}/spec/fixtures"
  config.use_transactional_fixtures = true
  config.infer_spec_type_from_file_location!
  config.filter_rails_from_backtrace!
end

Add Simplecov & database cleanser

group :development, :test do
  gem 'byebug'
+  gem 'database_cleaner'
end

group :test do
  gem 'rspec-rails', '~> 3.4', '>= 3.4.2'
+  gem 'simplecov', :require => false
end

spec/spec_helper.rb

+ require 'simplecov'
require 'factory_girl_rails'

SimpleCov.start 'rails'

RSpec.configure do |config|

  config.expect_with :rspec do |expectations|
    expectations.include_chain_clauses_in_custom_matcher_descriptions = true
  end

  config.mock_with :rspec do |mocks|
    mocks.verify_partial_doubles = true
  end

end

spec/rails_helper.rb

require 'simplecov'
SimpleCov.start 'rails'

ENV['RAILS_ENV'] ||= 'test'
require File.expand_path('../../config/environment', __FILE__)

abort("The Rails environment is running in production mode!") if Rails.env.production?
require 'spec_helper'
require 'rspec/rails'
require 'factory_girl_rails'
require 'ffaker'

ActiveRecord::Migration.maintain_test_schema!

RSpec.configure do |config|
  # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
  config.fixture_path = "#{::Rails.root}/spec/fixtures"
  config.use_transactional_fixtures = true
  config.infer_spec_type_from_file_location!
  config.filter_rails_from_backtrace!
end

.gitignore

/.bundle

# Ignore the default SQLite database.
/db/*.sqlite3
/db/*.sqlite3-journal

# Ignore all logfiles and tempfiles.
/log/*
!/log/.keep
/tmp

/locales/secrets.yml

coverage

When you run the tests again it wqill create the simplecove directory 'coverage'
Open the index.html in you browser

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment